mirror of
https://github.com/juanfont/headscale.git
synced 2026-04-22 08:38:39 +02:00
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
918 lines
38 KiB
JSON
918 lines
38 KiB
JSON
{
|
|
"test_id": "GRANT-D2",
|
|
"timestamp": "2026-02-23T00:30:09Z",
|
|
"propagation_wait_seconds": 15,
|
|
"input": {
|
|
"policy_file": "/home/kradalby/acl-explore/grant_policies/grant_d2.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"]
|
|
},
|
|
"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"],
|
|
"0.0.0.0/0": ["tag:exit"],
|
|
"::/0": ["tag:exit"]
|
|
}
|
|
},
|
|
"grants": [
|
|
{
|
|
"src": ["autogroup:tagged"],
|
|
"dst": ["tag:server"],
|
|
"app": {
|
|
"example.com/cap/test": [{}]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"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"
|
|
},
|
|
"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": ["10.33.0.0/16"],
|
|
"approved_routes": ["10.33.0.0/16"]
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"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": 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": {
|
|
"Node": {
|
|
"ID": 1440249486084758,
|
|
"StableID": "nXRbBtuHFC11CNTRL",
|
|
"Name": "tagged-server.tail78f774.ts.net.",
|
|
"User": 1260082990019555,
|
|
"Key": "nodekey:7d5c34b3e8082069d0a82838165c33f8e1b5eb32c6211c2d23d4fe8fb9ec4a19",
|
|
"DiscoKey": "discokey:372ff501f45d63e009ed97902f8b3acf6addd79e9c6ca7343d41c7adc4eb3e38",
|
|
"Addresses": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"AllowedIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:58686",
|
|
"10.65.0.27:58686",
|
|
"172.17.0.1:58686",
|
|
"172.18.0.1:58686",
|
|
"172.19.0.1:58686"
|
|
],
|
|
"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": [],
|
|
"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:372ff501f45d63e009ed97902f8b3acf6addd79e9c6ca7343d41c7adc4eb3e38",
|
|
"Addresses": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"AllowedIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:58686",
|
|
"10.65.0.27:58686",
|
|
"172.17.0.1:58686",
|
|
"172.18.0.1:58686",
|
|
"172.19.0.1:58686"
|
|
],
|
|
"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": [],
|
|
"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:372ff501f45d63e009ed97902f8b3acf6addd79e9c6ca7343d41c7adc4eb3e38",
|
|
"Addresses": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"AllowedIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:58686",
|
|
"10.65.0.27:58686",
|
|
"172.17.0.1:58686",
|
|
"172.18.0.1:58686",
|
|
"172.19.0.1:58686"
|
|
],
|
|
"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": [],
|
|
"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:372ff501f45d63e009ed97902f8b3acf6addd79e9c6ca7343d41c7adc4eb3e38",
|
|
"Addresses": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"AllowedIPs": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:58686",
|
|
"10.65.0.27:58686",
|
|
"172.17.0.1:58686",
|
|
"172.18.0.1:58686",
|
|
"172.19.0.1:58686"
|
|
],
|
|
"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.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"
|
|
],
|
|
"CapGrant": [
|
|
{
|
|
"Dsts": ["100.108.74.26/32", "fd7a:115c:a1e0::b901:4a87/128"],
|
|
"CapMap": {
|
|
"example.com/cap/test": [{}]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"packet_filter_matches": [
|
|
{
|
|
"IPProto": [6, 17, 1, 58],
|
|
"Srcs": [
|
|
"100.103.8.15/32",
|
|
"100.108.74.26/32",
|
|
"100.83.200.69/32",
|
|
"100.85.66.106/32",
|
|
"100.92.142.61/32",
|
|
"fd7a:115c:a1e0::3e37:8e3d/128",
|
|
"fd7a:115c:a1e0::5b37:80f/128",
|
|
"fd7a:115c:a1e0::7c37:426a/128",
|
|
"fd7a:115c:a1e0::b901:4a87/128",
|
|
"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": [{}]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"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:e067b4e63320882c9a744baff8b1d9de50fad897586d9ac2033723343a66e946",
|
|
"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:38956",
|
|
"10.65.0.27:38956",
|
|
"172.17.0.1:38956",
|
|
"172.18.0.1:38956",
|
|
"172.19.0.1:38956"
|
|
],
|
|
"HomeDERP": 14,
|
|
"Hostinfo": {
|
|
"OS": "linux",
|
|
"Hostname": "exit-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/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:861e592754ea9209e6ab02a511369b304e9094c6d636c270d746d9ddb954534d",
|
|
"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:45900",
|
|
"10.65.0.27:45900",
|
|
"172.17.0.1:45900",
|
|
"172.18.0.1:45900",
|
|
"172.19.0.1:45900"
|
|
],
|
|
"HomeDERP": 14,
|
|
"Hostinfo": {
|
|
"OS": "linux",
|
|
"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:f3f4cc194a00c26e6bd6ca6947a86ba8609fc759c469922205f1db9a5ab78c46",
|
|
"Addresses": ["100.83.200.69/32", "fd7a:115c:a1e0::c537:c845/128"],
|
|
"AllowedIPs": ["100.83.200.69/32", "fd7a:115c:a1e0::c537:c845/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:58209",
|
|
"10.65.0.27:58209",
|
|
"172.17.0.1:58209",
|
|
"172.18.0.1:58209",
|
|
"172.19.0.1:58209"
|
|
],
|
|
"HomeDERP": 14,
|
|
"Hostinfo": {
|
|
"OS": "linux",
|
|
"Hostname": "tagged-client",
|
|
"Services": [
|
|
{
|
|
"Proto": "peerapi4",
|
|
"Port": 41378
|
|
},
|
|
{
|
|
"Proto": "peerapi6",
|
|
"Port": 41378
|
|
}
|
|
]
|
|
},
|
|
"Created": "2026-02-23T00:13:11.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:196d9d1d9f0e2d5c5da0dc70164b6752bf8ad896991b7038b2272cb0bf8bf630",
|
|
"Addresses": ["100.103.8.15/32", "fd7a:115c:a1e0::5b37:80f/128"],
|
|
"AllowedIPs": ["100.103.8.15/32", "fd7a:115c:a1e0::5b37:80f/128"],
|
|
"Endpoints": [
|
|
"77.164.248.136:46099",
|
|
"10.65.0.27:46099",
|
|
"172.17.0.1:46099",
|
|
"172.18.0.1:46099",
|
|
"172.19.0.1:46099"
|
|
],
|
|
"HomeDERP": 14,
|
|
"Hostinfo": {
|
|
"OS": "linux",
|
|
"Hostname": "tagged-prod",
|
|
"Services": [
|
|
{
|
|
"Proto": "peerapi4",
|
|
"Port": 37678
|
|
},
|
|
{
|
|
"Proto": "peerapi6",
|
|
"Port": 37678
|
|
}
|
|
]
|
|
},
|
|
"Created": "2026-02-20T14:03:12.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": {
|
|
"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": {
|
|
"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": {
|
|
"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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|