policy/v2: add advertised routes to compat test topologies
Add routable_ips and approved_routes fields to the node topology
definitions in all golden test files. These represent the subnet
routes actually advertised by nodes on the Tailscale SaaS network
during data capture:
Routes topology (92 files, 6 router nodes):
big-router: 10.0.0.0/8
subnet-router: 10.33.0.0/16
ha-router1: 192.168.1.0/24
ha-router2: 192.168.1.0/24
multi-router: 172.16.0.0/24
exit-node: 0.0.0.0/0, ::/0
ACL topology (199 files, 1 router node):
subnet-router: 10.33.0.0/16
Grants topology (203 files, 1 router node):
subnet-router: 10.33.0.0/16
The route assignments were deduced from the golden data by analyzing
which router nodes receive FilterRules for which destination CIDRs
across all test files, and cross-referenced with the MTS setup
script (setup_grant_nodes.sh).
Updates #2180
This commit is contained in:
parent
927ce418d2
commit
995ed0187c
494 changed files with 76022 additions and 15770 deletions
|
|
@ -50,7 +50,13 @@
|
|||
"src": ["*"],
|
||||
"dst": ["tag:exit"],
|
||||
"ip": ["tcp:443"],
|
||||
"app": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"app": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"api_endpoint": "https://api.tailscale.com/api/v2/tailnet/kratail2tid%40passkey/acl",
|
||||
|
|
@ -75,7 +81,9 @@
|
|||
"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"],
|
||||
"approved_routes": ["10.33.0.0/16"]
|
||||
},
|
||||
"tagged-client": {
|
||||
"mts_name": "tagged-client",
|
||||
|
|
@ -148,8 +156,20 @@
|
|||
"fd7a:115c:a1e0::/48"
|
||||
],
|
||||
"DstPorts": [
|
||||
{ "IP": "100.85.66.106", "Ports": { "First": 443, "Last": 443 } },
|
||||
{ "IP": "fd7a:115c:a1e0::7c37:426a", "Ports": { "First": 443, "Last": 443 } }
|
||||
{
|
||||
"IP": "100.85.66.106",
|
||||
"Ports": {
|
||||
"First": 443,
|
||||
"Last": 443
|
||||
}
|
||||
},
|
||||
{
|
||||
"IP": "fd7a:115c:a1e0::7c37:426a",
|
||||
"Ports": {
|
||||
"First": 443,
|
||||
"Last": 443
|
||||
}
|
||||
}
|
||||
],
|
||||
"IPProto": [6]
|
||||
},
|
||||
|
|
@ -163,7 +183,13 @@
|
|||
"CapGrant": [
|
||||
{
|
||||
"Dsts": ["100.85.66.106/32", "fd7a:115c:a1e0::7c37:426a/128"],
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -190,8 +216,20 @@
|
|||
],
|
||||
"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 } }
|
||||
{
|
||||
"Net": "100.85.66.106/32",
|
||||
"Ports": {
|
||||
"First": 443,
|
||||
"Last": 443
|
||||
}
|
||||
},
|
||||
{
|
||||
"Net": "fd7a:115c:a1e0::7c37:426a/128",
|
||||
"Ports": {
|
||||
"First": 443,
|
||||
"Last": 443
|
||||
}
|
||||
}
|
||||
],
|
||||
"Caps": []
|
||||
},
|
||||
|
|
@ -217,11 +255,23 @@
|
|||
"SrcCaps": null,
|
||||
"Dsts": [],
|
||||
"Caps": [
|
||||
{ "Dst": "100.85.66.106/32", "Cap": "example.com/cap/exit-mixed", "Values": [{ "mode": "proxy" }] },
|
||||
{
|
||||
"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" }]
|
||||
"Values": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -252,8 +302,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "subnet-router",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 63250 },
|
||||
{ "Proto": "peerapi6", "Port": 63250 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 63250
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 63250
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:15.731478784Z",
|
||||
|
|
@ -264,8 +320,18 @@
|
|||
"ComputedName": "subnet-router",
|
||||
"ComputedNameWithHost": "subnet-router"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.83.200.69": {
|
||||
|
|
@ -293,8 +359,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "tagged-client",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 41378 },
|
||||
{ "Proto": "peerapi6", "Port": 41378 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 41378
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 41378
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:11.017324028Z",
|
||||
|
|
@ -304,8 +376,18 @@
|
|||
"ComputedName": "tagged-client",
|
||||
"ComputedNameWithHost": "tagged-client"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.103.8.15": {
|
||||
|
|
@ -333,8 +415,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "tagged-prod",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37678 },
|
||||
{ "Proto": "peerapi6", "Port": 37678 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37678
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37678
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-20T14:03:12.89283153Z",
|
||||
|
|
@ -344,8 +432,18 @@
|
|||
"ComputedName": "tagged-prod",
|
||||
"ComputedNameWithHost": "tagged-prod"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.108.74.26": {
|
||||
|
|
@ -373,8 +471,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "tagged-server",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 46499 },
|
||||
{ "Proto": "peerapi6", "Port": 46499 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 46499
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 46499
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-01-23T10:10:26.365653609Z",
|
||||
|
|
@ -384,8 +488,18 @@
|
|||
"ComputedName": "tagged-server",
|
||||
"ComputedNameWithHost": "tagged-server"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.110.121.96": {
|
||||
|
|
@ -414,8 +528,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "user-kris",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 40159 },
|
||||
{ "Proto": "peerapi6", "Port": 40159 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 40159
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 40159
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-20T14:09:34.803901523Z",
|
||||
|
|
@ -424,8 +544,18 @@
|
|||
"ComputedName": "user-kris",
|
||||
"ComputedNameWithHost": "user-kris"
|
||||
},
|
||||
"UserProfile": { "ID": 4538565228176803, "LoginName": "kristoffer@dalby.cc", "DisplayName": "kristoffer" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 4538565228176803,
|
||||
"LoginName": "kristoffer@dalby.cc",
|
||||
"DisplayName": "kristoffer"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.103.90.82": {
|
||||
|
|
@ -454,8 +584,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "user-mon",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 33201 },
|
||||
{ "Proto": "peerapi6", "Port": 33201 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 33201
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 33201
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-20T14:09:00.203639664Z",
|
||||
|
|
@ -469,7 +605,13 @@
|
|||
"LoginName": "monitorpasskeykradalby@passkey",
|
||||
"DisplayName": "monitorpasskeykradalby"
|
||||
},
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"100.90.199.68": {
|
||||
|
|
@ -498,8 +640,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "user1",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 46708 },
|
||||
{ "Proto": "peerapi6", "Port": 46708 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 46708
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 46708
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-01-23T10:04:13.531671894Z",
|
||||
|
|
@ -508,8 +656,18 @@
|
|||
"ComputedName": "user1",
|
||||
"ComputedNameWithHost": "user1"
|
||||
},
|
||||
"UserProfile": { "ID": 4156223528223174, "LoginName": "kratail2tid@passkey", "DisplayName": "kratail2tid" },
|
||||
"CapMap": { "example.com/cap/exit-mixed": [{ "mode": "proxy" }] }
|
||||
"UserProfile": {
|
||||
"ID": 4156223528223174,
|
||||
"LoginName": "kratail2tid@passkey",
|
||||
"DisplayName": "kratail2tid"
|
||||
},
|
||||
"CapMap": {
|
||||
"example.com/cap/exit-mixed": [
|
||||
{
|
||||
"mode": "proxy"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -547,8 +705,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -558,7 +722,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -627,8 +795,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -638,7 +812,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -707,8 +885,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -718,7 +902,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -787,8 +975,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -798,7 +992,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -867,8 +1065,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -878,7 +1082,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -947,8 +1155,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -958,7 +1172,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
@ -1027,8 +1245,14 @@
|
|||
"OS": "linux",
|
||||
"Hostname": "exit-node",
|
||||
"Services": [
|
||||
{ "Proto": "peerapi4", "Port": 37000 },
|
||||
{ "Proto": "peerapi6", "Port": 37000 }
|
||||
{
|
||||
"Proto": "peerapi4",
|
||||
"Port": 37000
|
||||
},
|
||||
{
|
||||
"Proto": "peerapi6",
|
||||
"Port": 37000
|
||||
}
|
||||
]
|
||||
},
|
||||
"Created": "2026-02-23T00:13:20.566112173Z",
|
||||
|
|
@ -1038,7 +1262,11 @@
|
|||
"ComputedName": "exit-node",
|
||||
"ComputedNameWithHost": "exit-node"
|
||||
},
|
||||
"UserProfile": { "ID": 1260082990019555, "LoginName": "tagged-devices", "DisplayName": "Tagged Devices" },
|
||||
"UserProfile": {
|
||||
"ID": 1260082990019555,
|
||||
"LoginName": "tagged-devices",
|
||||
"DisplayName": "Tagged Devices"
|
||||
},
|
||||
"CapMap": null
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue