From 349c4db600f10c9a2a671f5d5161381893dd7942 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Tue, 27 Oct 2026 14:19:43 +0000 Subject: [PATCH] servertest: add hidden peer and route announcement golden data What a node hears of peers it cannot see, and what a router's peers hear of routes it announces; presence, removals, peers and routes per step. --- hscontrol/servertest/lifecycle_compat_test.go | 34 +- hscontrol/servertest/mapstream_compat_test.go | 363 +- .../testdata/steps/hidden-peers.hujson | 7036 +++++++ .../testdata/steps/route-announce.hujson | 17287 ++++++++++++++++ hscontrol/servertest/via_ha_compat_test.go | 25 +- 5 files changed, 24713 insertions(+), 32 deletions(-) create mode 100644 hscontrol/servertest/testdata/steps/hidden-peers.hujson create mode 100644 hscontrol/servertest/testdata/steps/route-announce.hujson diff --git a/hscontrol/servertest/lifecycle_compat_test.go b/hscontrol/servertest/lifecycle_compat_test.go index d405e9f45..1c663e874 100644 --- a/hscontrol/servertest/lifecycle_compat_test.go +++ b/hscontrol/servertest/lifecycle_compat_test.go @@ -195,20 +195,7 @@ func runRouteLifecycleCompat(t *testing.T, id, observer string, skips map[string join := first[router] - hsRoutes := func() (deviceRoutes, bool) { - nodes := r.machineNodes(router) - if len(nodes) != 1 { - return deviceRoutes{}, false - } - - status, body := r.call(t, http.MethodGet, "/api/v2/device/"+nodes[0].StringID()+"/routes", nil) - require.Equal(t, http.StatusOK, status, "%s", body) - - var out deviceRoutes - require.NoError(t, json.Unmarshal(body, &out)) - - return out, true - } + hsRoutes := func() (deviceRoutes, bool) { return r.hsDeviceRoutes(t, router) } // hsPeer is the router as the observer's peer in headscale. hsPeer := func() (tailcfg.NodeView, string) { @@ -418,6 +405,25 @@ type deviceRoutes struct { Enabled []string `json:"enabledRoutes"` } +// hsDeviceRoutes reads alias's routes from headscale's v2 API, while its +// machine holds one node. +func (r *stepReplay) hsDeviceRoutes(t *testing.T, alias string) (deviceRoutes, bool) { + t.Helper() + + nodes := r.machineNodes(alias) + if len(nodes) != 1 { + return deviceRoutes{}, false + } + + status, body := r.call(t, http.MethodGet, "/api/v2/device/"+nodes[0].StringID()+"/routes", nil) + require.Equal(t, http.StatusOK, status, "%s", body) + + var out deviceRoutes + require.NoError(t, json.Unmarshal(body, &out)) + + return out, true +} + // saasDevice is the part of a SaaS device-list entry the checks read. // Keys and IDs are the capture's labels. type saasDevice struct { diff --git a/hscontrol/servertest/mapstream_compat_test.go b/hscontrol/servertest/mapstream_compat_test.go index d9f78ed83..35328ba12 100644 --- a/hscontrol/servertest/mapstream_compat_test.go +++ b/hscontrol/servertest/mapstream_compat_test.go @@ -1,11 +1,13 @@ // This file replays map stream captures from Tailscale SaaS: what each node // is sent when a device is retagged, when a running peer changes its DERP // home, disco key, hostname or port, when a node goes down and up around -// policy pushes, and which Hostinfo fields peers and the node itself get. +// policy pushes, and which Hostinfo fields peers and the node itself get; +// what a node hears of nodes it cannot see; and what a router's peers hear +// of routes it announces but has no approval for. // -// Test data source: testdata/steps/map-delivery.hujson, loaded by name. Its -// disco rotation also pins a row of TestBuildMapRequestChangeResponse in -// ../state. +// Test data source: testdata/steps/{map-delivery,hidden-peers,route-announce}.hujson, +// loaded by name. The disco rotation of map-delivery also pins a row of +// TestBuildMapRequestChangeResponse in ../state. // Source format: github.com/juanfont/headscale/hscontrol/types/testcapture package servertest_test @@ -22,6 +24,7 @@ import ( "testing" "time" + "github.com/juanfont/headscale/hscontrol/servertest" "github.com/juanfont/headscale/hscontrol/types/testcapture" "github.com/stretchr/testify/require" "tailscale.com/tailcfg" @@ -82,10 +85,48 @@ var mapStreamSkipReasons = map[string]string{ "map-delivery/S2.0/appc/peer-hostinfo": peerServicesWhole, "map-delivery/S2.0/bystander/peer-hostinfo": peerServicesWhole, "map-delivery/S2.0/sshd/peer-hostinfo": peerServicesWhole, + + "hidden-peers/S9/observer/removed": removalSentToAll, + "hidden-peers/S10/observer/removed": removalSentToAll, + "hidden-peers/S13/observer/removed": removalSentToAll, + + "hidden-peers/S2/witness/presence": policyResponseToEveryNode, + "hidden-peers/S8/observer/presence": policyResponseToEveryNode, + "hidden-peers/S9/observer/presence": policyResponseToEveryNode, + "hidden-peers/S10/observer/presence": policyResponseToEveryNode, + "hidden-peers/S13/observer/presence": policyResponseToEveryNode, + "route-announce/RA3/srv/presence": policyResponseToEveryNode, + "route-announce/RA3/wit/presence": policyResponseToEveryNode, + "route-announce/RA4/srv/presence": policyResponseToEveryNode, + "route-announce/RA4/wit/presence": policyResponseToEveryNode, + "route-announce/RA6/rtr/presence": policyResponseToEveryNode, + "route-announce/RA6/srv/presence": policyResponseToEveryNode, + "route-announce/RA6/wit/presence": policyResponseToEveryNode, + "route-announce/RA9/rtr/presence": policyResponseToEveryNode, + "route-announce/RA9/srv/presence": policyResponseToEveryNode, + "route-announce/RA9/wit/presence": policyResponseToEveryNode, + + "route-announce/RA7/wit/presence": announcePolicyResend, + "route-announce/RA8/wit/presence": announcePolicyResend, + "route-announce/RA10/wit/presence": announcePolicyResend, + "route-announce/RA11/wit/presence": announcePolicyResend, + + "route-announce/RA0/rtr/self-routes": selfRoutesReduced, + "route-announce/RA1/rtr/self-routes": selfRoutesReduced, + "route-announce/RA2/rtr/self-routes": selfRoutesReduced, + "route-announce/RA3/rtr/self-routes": selfRoutesReduced, + "route-announce/RA4/rtr/self-routes": selfRoutesReduced, + "route-announce/RA5/rtr/self-routes": selfRoutesReduced, + "route-announce/RA6/rtr/self-routes": selfRoutesReduced, + "route-announce/RA7/rtr/self-routes": selfRoutesReduced, + "route-announce/RA8/rtr/self-routes": selfRoutesReduced, + "route-announce/RA9/rtr/self-routes": selfRoutesReduced, + "route-announce/RA10/rtr/self-routes": selfRoutesReduced, + "route-announce/RA11/rtr/self-routes": selfRoutesReduced, } const ( - policyResponseToEveryNode = "POLICY_RESPONSE_TO_EVERY_NODE: headscale sends every connected node a policy response when tags or the policy change; SaaS sends only the nodes whose peers or filter change" + policyResponseToEveryNode = "POLICY_RESPONSE_TO_EVERY_NODE: headscale sends every connected node a policy response when the policy, a node's tags or approved routes, or the set of nodes change; SaaS sends only the nodes whose peers or filter change" ownReportEchoed = "OWN_REPORT_ECHOED: headscale sends a node its own endpoint or DERP report back; SaaS sends it nothing, so its own entry keeps the endpoints of its last full map" restartEndpointsKept = "RESTART_ENDPOINTS_KEPT: headscale keeps a restarted node's last endpoints at its peers until it reports new ones; SaaS sends peers the node without endpoints until then" reconnectAnnounced = "RECONNECT_ANNOUNCED: headscale tells peers a node is online after a stream gap of a few seconds; SaaS sends them nothing" @@ -93,8 +134,40 @@ const ( selfHostinfoWhole = "SELF_HOSTINFO_WHOLE: headscale sends a node its whole reported Hostinfo; SaaS sends only Hostname, RequestTags and Services" peerHostinfoWhole = "PEER_HOSTINFO_WHOLE: headscale sends peers a node's whole reported Hostinfo; SaaS sends only Hostname, OS, Services, the SSH host keys and AppConnector" peerServicesWhole = "PEER_SERVICES_WHOLE: headscale sends peers every service a node reports; SaaS leaves out peerapi-dns-proxy" + removalSentToAll = "REMOVAL_SENT_TO_ALL: headscale tells every connected node that a deleted node is gone; SaaS tells only the nodes that had it as a peer" + announcePolicyResend = "ANNOUNCE_POLICY_RESEND: under an autogroup:self or via policy, headscale sends every connected node a policy response when a router changes only routes nobody approved; SaaS sends nothing to nodes that cannot see the router" ) +// mapStreamNotCompared lists, by key prefix, checks left out: SaaS's answer +// there is in doubt, so it is no reference. +var mapStreamNotCompared = []string{ + "route-announce/RA2/observer/presence", + "route-announce/RA2/srv/presence", + "route-announce/RA2/witness/presence", + "route-announce/RA5/observer/presence", + "route-announce/RA5/srv/presence", + "route-announce/RA5/witness/presence", + "route-announce/RA7/observer/presence", + "route-announce/RA7/srv/presence", + "route-announce/RA7/witness/presence", + "route-announce/RA8/observer/presence", + "route-announce/RA8/srv/presence", + "route-announce/RA8/witness/presence", + "route-announce/RA10/observer/presence", + "route-announce/RA10/srv/presence", + "route-announce/RA10/witness/presence", + "route-announce/RA11/observer/presence", + "route-announce/RA11/srv/presence", + "route-announce/RA11/witness/presence", +} + +// compared drops the checks mapStreamNotCompared leaves out. +func compared(prefix string, checks []stepCheck) []stepCheck { + return slices.DeleteFunc(checks, func(ch stepCheck) bool { + return notCompared(mapStreamNotCompared, prefix+ch.name) + }) +} + // TestMapDeliveryCompat replays a device retagged through the API, a running // peer that picks new DERP homes, rotates its disco key, renames itself and // restarts on another port, down and up gaps of a node and a router, a rule @@ -272,13 +345,6 @@ func (r *stepReplay) deliveryDaemon(ctx context.Context, t *testing.T, step test require.NotNil(t, hi, "%s: no request from restarted %s", step.Name, a.Node) require.NoError(t, cl.Restart(ctx, hi), "%s: restart", step.Name) - case args == "down": - cl.Disconnect(t) - - case args == "up": - // tailscaled registers again on its node key, then polls. - require.NoError(t, cl.ReloginAndPoll(ctx), "%s: up", step.Name) - case args == "debug rotate-disco-key": require.NoError(t, cl.RotateDisco(ctx), "%s: disco rotation", step.Name) @@ -296,7 +362,7 @@ func (r *stepReplay) deliveryDaemon(ctx context.Context, t *testing.T, step test // Only what the node reports changes. default: - t.Fatalf("%s: no replay for %s %q", step.Name, a.Kind, a.Args) + r.daemon(ctx, t, step.Name, a) } } @@ -387,7 +453,7 @@ func (r *stepReplay) settle(t *testing.T) { counts := func() map[string]int { out := make(map[string]int, len(r.clients)) for alias, cl := range r.clients { - out[alias] = cl.UpdateCount() + out[alias] = cl.Frames() } return out @@ -808,3 +874,272 @@ func renderPeerFields(peers, want map[string]map[string]json.RawMessage) string return strings.Join(out, "\n") } + +// TestHiddenPeerEventsCompat replays two users' nodes under a policy that +// lets each reach only its own: nodes the observer cannot see go down, come +// up, rename, join, are deleted and log out, then a one-way rule shows them +// to it and is taken back. After each step it compares, per captured node, +// whether it was sent anything, which nodes it was told were removed, and +// its peers. +func TestHiddenPeerEventsCompat(t *testing.T) { + t.Parallel() + + t.Run("hidden-peers", func(t *testing.T) { + t.Parallel() + + replayVisibility(t, "hidden-peers") + }) +} + +// TestRouteAnnouncementCompat replays a tagged router that renames itself +// and announces and drops a route no auto-approver covers, which the admin +// approves and revokes once, under a global, an autogroup:self and a via +// policy. After each step it compares what [TestHiddenPeerEventsCompat] +// does, plus the routes API, the router's own routes and how each captured +// node is served by it. +func TestRouteAnnouncementCompat(t *testing.T) { + t.Parallel() + + t.Run("route-announce", func(t *testing.T) { + t.Parallel() + + replayVisibility(t, "route-announce") + }) +} + +func TestMapStreamSkipEntriesNameCaptures(t *testing.T) { + t.Parallel() + + requireSkipCaptures(t, mapStreamSkipReasons, "map-delivery", "hidden-peers", "route-announce") +} + +// visibilityMark is what a client had been sent when a step began. +type visibilityMark struct { + frames, removed int + + // history indexes the client's last netmap before the step, so a peer + // held then and missing from the step's first netmap counts as removed. + history int +} + +// replayVisibility replays capture id step by step, each action landing +// before the next, and holds each step's [visibilityChecks] against +// [mapStreamSkipReasons]. +func replayVisibility(t *testing.T, id string) { + t.Helper() + + c := readStepCapture(t, id) + r := newStepReplay(t, c) + r.deltaUpdates = true + evaluated := map[string]bool{} + + // Nodes kept from an earlier capture joined under the policy the tailnet + // held when this one began, before the step's own push. + r.setPolicy(t, "setup", c.Input.FullPolicy) + + for _, step := range c.Steps { + require.Equal(t, "observed", step.Result, "%s: the replay follows every step", step.Name) + + r.settle(t) + + before := make(map[string]visibilityMark, len(r.clients)) + for alias, cl := range r.clients { + before[alias] = visibilityMark{ + frames: cl.Frames(), + removed: len(cl.DeltaRemovedPeers()), + history: max(cl.UpdateCount()-1, 0), + } + } + + for _, a := range step.Actions { + one := step + one.Actions = []testcapture.Action{a} + require.Empty(t, r.apply(t, one), "%s: every login succeeds", step.Name) + r.waitSession(t, step.Name, a) + } + + t.Run(step.Name, func(t *testing.T) { + prefix := id + "/" + step.Name + "/" + holdChecks(t, mapStreamSkipReasons, prefix, compared(prefix, visibilityChecks(t, r, step, before)), evaluated) + }) + } + + for k := range mapStreamSkipReasons { + if strings.HasPrefix(k, id+"/") && !evaluated[k] { + t.Errorf("skip entry %q names no check", k) + } + } +} + +// visibilityChecks compares, per node SaaS captured in the step (the nodes +// whose streams it followed), whether it was sent anything, which nodes it +// was told were removed and its peers. +// After a step that read a router's routes, it also compares the routes +// API, the router's own routes and how each captured node is served by it. +func visibilityChecks(t *testing.T, r *stepReplay, step testcapture.Step, before map[string]visibilityMark) []stepCheck { + t.Helper() + + subjects := stepSubjects(step) + captured := slices.Sorted(maps.Keys(step.Captures)) + + var checks []stepCheck + + for _, x := range captured { + saas, cl := step.Captures[x].Netmap, r.clients[x] + if saas == nil || cl == nil { + continue + } + + mark := before[x] + + checks = append(checks, + stepCheck{x + "/presence", saasPresence(step.Frames[x], slices.Contains(subjects, x)), func() string { + if cl.Frames() > mark.frames { + return "frame" + } + + return "silent" + }}, + stepCheck{x + "/removed", saasRemovedPeers(step.Frames[x], r.saasAlias), func() string { + return r.hsRemovedPeers(cl, mark) + }}, + stepCheck{x + "/peers", peerAliases(saas, r.saasAlias), func() string { + return peerAliases(cl.Netmap(), r.hsAlias) + }}, + ) + } + + router, saasRoutes, ok := lastRoutesRead(t, step) + if !ok { + return checks + } + + checks = append(checks, + stepCheck{router + "/advertised", sortedStrings(saasRoutes.Advertised), func() string { + got, ok := r.hsDeviceRoutes(t, router) + if !ok { + return "no single device" + } + + return sortedStrings(got.Advertised) + }}, + stepCheck{router + "/enabled", sortedStrings(saasRoutes.Enabled), func() string { + got, ok := r.hsDeviceRoutes(t, router) + if !ok { + return "no single device" + } + + return sortedStrings(got.Enabled) + }}, + ) + + if self := step.Captures[router].Netmap; self != nil && r.clients[router] != nil { + checks = append(checks, stepCheck{router + "/self-routes", selfRoutes(self), func() string { + nm := r.clients[router].Netmap() + if nm == nil { + return "no netmap" + } + + return selfRoutes(nm) + }}) + } + + for _, v := range captured { + saas := step.Captures[v].Netmap + if v == router || saas == nil || r.clients[v] == nil { + continue + } + + checks = append(checks, stepCheck{router + "/routes-" + v, servedRoutes(peerByID(saas, r.c.NodeIDs[router])), func() string { + nodes := r.machineNodes(router) + if len(nodes) != 1 { + return fmt.Sprintf("devices %d", len(nodes)) + } + + return servedRoutes(peerByID(r.clients[v].Netmap(), nodes[0].ID().NodeID())) + }}) + } + + return checks +} + +// saasPresence says whether SaaS sent a node anything but keep-alives during +// the step. A frame holding only the node's own Node counts only for a node +// the step acted on: SaaS can send a node its own Node, with what the node +// reported earlier, when another node's change reaches the tailnet, so to a +// node the step left alone such a frame says nothing about the step. +func saasPresence(frames []testcapture.Frame, actedOn bool) string { + for _, f := range frames { + resp := f.Response + if resp == nil || resp.KeepAlive || (!actedOn && selfOnly(f)) { + continue + } + + return "frame" + } + + return "silent" +} + +// selfOnly reports whether a frame carries the node's own Node and nothing +// else but ControlTime. +func selfOnly(f testcapture.Frame) bool { + if f.Response.Node == nil || len(f.Empty) > 0 || len(f.Dropped) > 0 { + return false + } + + rest := *f.Response + rest.Node, rest.ControlTime = nil, nil + + b, err := json.Marshal(rest) + + return err == nil && string(b) == "{}" +} + +// saasRemovedPeers names the nodes the step's frames removed. +func saasRemovedPeers(frames []testcapture.Frame, alias func(tailcfg.NodeID) (string, bool)) string { + set := map[string]bool{} + + for _, f := range frames { + if f.Response == nil { + continue + } + + for _, id := range f.Response.PeersRemoved { + if name, ok := alias(id); ok { + set[name] = true + } + } + } + + return sortedStrings(slices.Collect(maps.Keys(set))) +} + +// hsRemovedPeers names the nodes headscale told cl were removed since mark: +// removals it applied as a delta, and peers its netmaps dropped. +// +// shortcut: a removal of a peer cl never held, sent with fields a delta +// cannot carry (a policy response holds the self node and SSH policy), shows +// in neither; record raw responses in the test client if a step needs it. +func (r *stepReplay) hsRemovedPeers(cl *servertest.TestClient, mark visibilityMark) string { + set := map[string]bool{} + + for _, id := range cl.DeltaRemovedPeers()[mark.removed:] { + if name, ok := r.hsAlias(id); ok { + set[name] = true + } + } + + history := cl.History()[mark.history:] + for i := 1; i < len(history); i++ { + for _, p := range history[i-1].Peers { + if _, missing := peerByID(history[i], p.ID()); missing != "" { + if name, ok := r.hsAlias(p.ID()); ok { + set[name] = true + } + } + } + } + + return sortedStrings(slices.Collect(maps.Keys(set))) +} diff --git a/hscontrol/servertest/testdata/steps/hidden-peers.hujson b/hscontrol/servertest/testdata/steps/hidden-peers.hujson new file mode 100644 index 000000000..5e1d89414 --- /dev/null +++ b/hscontrol/servertest/testdata/steps/hidden-peers.hujson @@ -0,0 +1,7036 @@ +// hidden-peers +// +// Two users' map streams under a policy that lets each reach only its own nodes: nodes the observer may not see go down, come up, rename, join, are deleted and log out (ephemeral), then a one-way rule from the observer's user shows them and is taken back. TS_DEBUG_MAP logs a stream's first keepalive only, so repeated keepalives are not in the frames. +// +// Nodes with filter rules: 2 of 2 +// Steps: 12 +// Captured at: 2026-10-20T12:42:30Z +// tool version: saasprobe dd3efab44b0524074077c2aca9672118c7c4829f +// schema version: 1 +{ + "schema_version": 1, + "test_id": "hidden-peers", + "description": "Two users' map streams under a policy that lets each reach only its own nodes: nodes the observer may not see go down, come up, rename, join, are deleted and log out (ephemeral), then a one-way rule from the observer's user shows them and is taken back. TS_DEBUG_MAP logs a stream's first keepalive only, so repeated keepalives are not in the frames.", + "captured_at": "2026-10-20T12:42:30.944388903Z", + "tool_version": "saasprobe dd3efab44b0524074077c2aca9672118c7c4829f", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": {"api_response_code": 0, "tailnet": {"dns": { + "magic_dns": false, + "nameservers": null, + "search_paths": null, + "split_dns": null + }, "settings": {}}, "scenario_hujson": "", "full_policy": { + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + }, + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "acls": [{ + "action": "accept", + "src": ["odin@example.com"], + "dst": ["odin@example.com:*"] + }, { + "action": "accept", + "src": ["thor@example.org"], + "dst": ["thor@example.org:*"] + }, {"action": "accept", "src": ["tag:server"], "dst": ["tag:router:*"]}, { + "action": "accept", + "src": ["autogroup:member"], + "dst": ["10.20.1.0/24:*"] + }, { + "action": "accept", + "src": ["autogroup:member"], + "dst": ["10.30.0.0/24:*"] + }] + }}, + "topology": {"users": [ + {"id": 1, "name": "odin", "email": "odin@example.com"}, + {"id": 2, "name": "thor", "email": "thor@example.org"}, + {"id": 3, "name": "freya", "email": "freya@example.com"} + ], "nodes": {"ephem": { + "hostname": "ephem", + "tags": [], + "ipv4": "100.93.182.69", + "ipv6": "fd7a:115c:a1e0::ec28:b646", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "late": { + "hostname": "late", + "tags": [], + "ipv4": "100.92.208.96", + "ipv6": "fd7a:115c:a1e0::2828:d061", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "observer": { + "hostname": "observer", + "tags": [], + "ipv4": "100.101.177.2", + "ipv6": "fd7a:115c:a1e0::5728:b103", + "user": "thor", + "routable_ips": [], + "approved_routes": [] + }, "subject": { + "hostname": "subject", + "tags": [], + "ipv4": "100.121.162.127", + "ipv6": "fd7a:115c:a1e0::1128:a280", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "witness": { + "hostname": "witness", + "tags": [], + "ipv4": "100.104.144.97", + "ipv6": "fd7a:115c:a1e0::9428:9062", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "ephem": 5139965372012684, + "late": 6229591427943053, + "observer": 7878954180964553, + "subject": 2455779641165411, + "witness": 7548417557927527 + }, + "steps": [{ + "name": "S1", + "at": "2026-10-20T12:42:30.944406728Z", + "result": "observed", + "actions": [{ + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "offset_ms": 18 + }, { + "kind": "api", + "key": "K-witness", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-witness", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:35Z", + "description": "tscap-saasprobe K-witness", + "expires": "2026-10-20T13:42:35Z", + "expirySeconds": 3600, + "id": "{key:K-witness}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2004 + }, { + "kind": "api", + "key": "K-subject", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-subject", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:37Z", + "description": "tscap-saasprobe K-subject", + "expires": "2026-10-20T13:42:37Z", + "expirySeconds": 3600, + "id": "{key:K-subject}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4023 + }, { + "kind": "api", + "key": "K-ephem", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": true, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-ephem", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": true, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:39Z", + "description": "tscap-saasprobe K-ephem", + "expires": "2026-10-20T13:42:39Z", + "expirySeconds": 3600, + "id": "{key:K-ephem}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 6044 + }, { + "kind": "api", + "key": "K-observer", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-observer", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:41Z", + "description": "tscap-saasprobe K-observer", + "expires": "2026-10-20T13:42:41Z", + "expirySeconds": 3600, + "id": "{key:K-observer}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 8063 + }, { + "kind": "api", + "key": "K-late", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-late", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:43Z", + "description": "tscap-saasprobe K-late", + "expires": "2026-10-20T13:42:43Z", + "expirySeconds": 3600, + "id": "{key:K-late}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 10084 + }, { + "kind": "join", + "node": "witness", + "key": "K-witness", + "hostname": "witness", + "offset_ms": 12438 + }, { + "kind": "join", + "node": "subject", + "key": "K-subject", + "hostname": "subject", + "offset_ms": 13835 + }, { + "kind": "join", + "node": "ephem", + "key": "K-ephem", + "hostname": "ephem", + "offset_ms": 15579 + }, { + "kind": "barrier", + "args": ["witness sees subject and ephem"], + "offset_ms": 17514 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 17514}], + "captures": {"witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "register": {"ephem": [{ + "node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 15055 + }], "subject": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 14055 + }], "witness": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 12055 + }]}, + "frames": {"witness": [ + {"offset_ms": 12055, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "witness", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 12055, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Stream": true, + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "witness", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 12055, "response": { + "Node": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Hostinfo": { + "Hostname": "witness", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "DNSConfig": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "Domain": "odin@example.com", + "PacketFilter": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "UserProfiles": [{ + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }], + "SSHPolicy": {"rules": []}, + "ControlTime": "2026-10-20T12:42:43.743806293Z" + }, "dropped": ["DERPMap", "ControlDialPlan"]}, + {"offset_ms": 13055, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "witness", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 13055, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "witness", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 13055, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "witness", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 14055, "response": {"Node": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "PeersChanged": [{ + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Hostinfo": {"OS": "linux", "Hostname": "subject"}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true + }], "PacketFilter": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "ControlTime": "2026-10-20T12:42:45.090522376Z"}}, + {"offset_ms": 14055, "response": {"PeersChanged": [{ + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Hostinfo": {"OS": "linux", "Hostname": "subject"}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true + }]}}, + { + "offset_ms": 14055, + "response": {"PeersChangedPatch": [{"NodeID": 2455779641165411, "Online": true}]} + }, + {"offset_ms": 15055, "response": {"PeersChanged": [{ + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true + }]}}, + {"offset_ms": 15055, "response": {"PeersChanged": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Hostinfo": {"OS": "linux", "Hostname": "ephem"}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true + }], "PacketFilter": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "ControlTime": "2026-10-20T12:42:46.805046355Z"}}, + {"offset_ms": 15055, "response": {"PeersChanged": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Hostinfo": {"OS": "linux", "Hostname": "ephem"}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true + }]}}, + { + "offset_ms": 16055, + "response": {"PeersChangedPatch": [{"NodeID": 5139965372012684, "Online": true}]} + }, + {"offset_ms": 17055, "response": {"PeersChanged": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true + }]}}, + {"offset_ms": 17055, "response": {"PeersChanged": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true + }]}}, + { + "offset_ms": 17055, + "response": {"PeersChangedPatch": [{"NodeID": 5139965372012684, "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ]}]} + } + ]} + }, { + "name": "S2", + "at": "2026-10-20T12:43:05.473563902Z", + "result": "observed", + "actions": [ + { + "kind": "join", + "node": "observer", + "key": "K-observer", + "hostname": "observer", + "offset_ms": 113 + }, + {"kind": "barrier", "args": ["observer alone"], "offset_ms": 644}, + {"kind": "wait", "args": ["15s"], "offset_ms": 644} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "register": {"observer": [{ + "node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": true + }]}, + "frames": {"observer": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "observer", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Stream": true, + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "observer", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": { + "Node": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "DNSConfig": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "Domain": "odin@example.com", + "PacketFilter": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "UserProfiles": [{ + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }], + "SSHPolicy": {"rules": []}, + "ControlTime": "2026-10-20T12:43:05.75092367Z" + }, "dropped": ["DERPMap", "ControlDialPlan"]}, {"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "observer", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 526, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "observer", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 526, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "observer", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}]} + }, { + "name": "S3", + "at": "2026-10-20T12:43:29.130876338Z", + "result": "observed", + "actions": [{"kind": "wait", "args": ["1m0s"]}], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "frames": { + "observer": [{"offset_ms": 21869, "response": {"KeepAlive": true}}], + "witness": [{"offset_ms": 15869, "response": {"KeepAlive": true}}] + } + }, { + "name": "S4", + "at": "2026-10-20T12:44:33.170919564Z", + "result": "observed", + "actions": [{"kind": "cli", "node": "subject", "args": ["down"], "exit": 0}, { + "kind": "barrier", + "args": ["witness sees subject offline"], + "offset_ms": 16050 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 16050}], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "LastSeen": "2026-10-20T12:40:00.1Z", + "Online": false, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "frames": {"witness": [{"offset_ms": 14829, "response": {"PeersChangedPatch": [{ + "NodeID": 2455779641165411, + "Online": false, + "LastSeen": "2026-10-20T12:40:00.1Z" + }]}}]} + }, { + "name": "S5", + "at": "2026-10-20T12:45:08.236570308Z", + "result": "observed", + "actions": [{"kind": "cli", "node": "subject", "args": ["up"], "exit": 0}, { + "kind": "barrier", + "args": ["witness sees subject online"], + "offset_ms": 1022 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1022}], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Hostinfo": { + "Hostname": "observer", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "LastSeen": "2026-10-20T12:40:00.1Z", + "Online": true, + "ComputedName": "subject", + "ComputedNameWithHost": "subject" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "register": {"subject": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true + }]}, + "frames": {"witness": [{ + "offset_ms": 0, + "response": {"PeersChangedPatch": [{"NodeID": 2455779641165411, "Online": true}]} + }]} + }, { + "name": "S6", + "at": "2026-10-20T12:45:28.26748548Z", + "result": "observed", + "actions": [{ + "kind": "cli", + "node": "subject", + "hostname": "subject-renamed", + "args": ["set", "--hostname=subject-renamed"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["witness sees subject named subject-renamed"], + "offset_ms": 1027 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1027}], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject-renamed.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject-renamed", + "ComputedNameWithHost": "subject-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"Node": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:45:28.313271969Z"}}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject-renamed.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "subject-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true + }], "ControlTime": "2026-10-20T12:45:28.312994029Z"}}] + } + }, { + "name": "S8", + "at": "2026-10-20T12:45:48.317069758Z", + "result": "observed", + "actions": [ + { + "kind": "join", + "node": "late", + "key": "K-late", + "hostname": "late", + "offset_ms": 123 + }, + {"kind": "barrier", "args": ["witness sees late"], "offset_ms": 978}, + {"kind": "wait", "args": ["15s"], "offset_ms": 978} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }, { + "ID": 2455779641165411, + "StableID": "nNc7UgAEBL11CNTRL", + "Name": "subject-renamed.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:135de49684518bc0195bc174f26120b48fc334be8aa5dc031917ea461139a27f", + "KeyExpiry": "2027-04-18T12:42:45Z", + "DiscoKey": "discokey:61652ad3e0f2d122de56167c6c6aedf31ad8491348e31da667cfd781f4fdf14a", + "Addresses": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "AllowedIPs": ["100.121.162.127/32", "fd7a:115c:a1e0::1128:a280/128"], + "Endpoints": [ + "192.0.2.1:46301", + "198.51.100.1:46301", + "198.51.100.2:46301", + "198.51.100.3:46301", + "198.51.100.4:46301", + "198.51.100.5:46301", + "198.51.100.6:46301", + "198.51.100.7:46301" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "subject-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 47115}, + {"Proto": "peerapi6", "Port": 47115} + ]}, + "Created": "2026-10-20T12:42:45.086965167Z", + "Cap": 142, + "Online": true, + "ComputedName": "subject-renamed", + "ComputedNameWithHost": "subject-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "register": {"late": [{ + "node_key": "{nodekey:5}", + "node_key_expired": false, + "machine_authorized": true + }]}, + "frames": {"witness": [ + {"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Hostinfo": {"OS": "linux", "Hostname": "late"}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true + }], "PacketFilter": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "ControlTime": "2026-10-20T12:45:48.647704758Z"}}, + {"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Hostinfo": {"OS": "linux", "Hostname": "late"}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true + }]}}, + {"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true + }]}}, + { + "offset_ms": 0, + "response": {"PeersChangedPatch": [{"NodeID": 6229591427943053, "Online": true}]} + }, + {"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true + }]}}, + { + "offset_ms": 682, + "response": {"PeersChangedPatch": [{"NodeID": 6229591427943053, "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ]}]} + } + ]} + }, { + "name": "S9", + "at": "2026-10-20T12:46:08.309710055Z", + "result": "observed", + "actions": [ + { + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/device/{device:subject}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, + {"kind": "barrier", "args": ["witness loses subject"], "offset_ms": 20}, + {"kind": "wait", "args": ["15s"], "offset_ms": 20}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:subject}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "no manageable device matching this ID found"}, + "offset_ms": 15020 + }, + {"kind": "retire", "node": "subject", "offset_ms": 15038} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 5139965372012684, + "StableID": "nMyXw7Bu8h11CNTRL", + "Name": "ephem.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:236cc24cd851e5e1f695004551b1ab31a304b7ab9922d0b3eff18288ec9db645", + "KeyExpiry": "2027-04-18T12:42:46Z", + "DiscoKey": "discokey:ad29ca8164f40cbde39eab7ded62ffae69d4f0f8a5f9c8b5d70e94092d001b5a", + "Addresses": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "AllowedIPs": ["100.93.182.69/32", "fd7a:115c:a1e0::ec28:b646/128"], + "Endpoints": [ + "192.0.2.1:49505", + "198.51.100.1:49505", + "198.51.100.2:49505", + "198.51.100.3:49505", + "198.51.100.4:49505", + "198.51.100.5:49505", + "198.51.100.6:49505", + "198.51.100.7:49505" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "ephem", "Services": [ + {"Proto": "peerapi4", "Port": 55504}, + {"Proto": "peerapi6", "Port": 55504} + ]}, + "Created": "2026-10-20T12:42:46.801415089Z", + "Cap": 142, + "Online": true, + "ComputedName": "ephem", + "ComputedNameWithHost": "ephem" + }, { + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "frames": { + "witness": [{"offset_ms": 0, "response": {"PeersRemoved": [2455779641165411]}}] + } + }, { + "name": "S10", + "at": "2026-10-20T12:46:27.375790881Z", + "result": "observed", + "actions": [ + {"kind": "logout", "node": "ephem", "args": ["logout"], "exit": 0}, + {"kind": "barrier", "args": ["witness loses ephem"], "offset_ms": 46}, + {"kind": "wait", "args": ["15s"], "offset_ms": 46}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:ephem}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "no manageable device matching this ID found"}, + "offset_ms": 15050 + }, + {"kind": "retire", "node": "ephem", "offset_ms": 15069} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.121.162.127/32", + "100.92.208.96/32", + "100.93.182.69/32", + "fd7a:115c:a1e0::1128:a280/128", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128", + "fd7a:115c:a1e0::ec28:b646/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.121.162.127", + "100.92.208.96", + "100.93.182.69", + "fd7a:115c:a1e0::1128:a280", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062", + "fd7a:115c:a1e0::ec28:b646" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}}, + "register": {"ephem": [{ + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true + }]}, + "frames": { + "witness": [{"offset_ms": 0, "response": {"PeersRemoved": [5139965372012684]}}] + } + }, { + "name": "S11", + "at": "2026-10-20T12:46:46.479196302Z", + "result": "observed", + "actions": [{ + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["thor@example.org"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:2}"}, + "response": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["thor@example.org"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + } + }, { + "kind": "barrier", + "args": ["observer sees witness and late"], + "offset_ms": 1022 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1022}], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }, { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true + }], "UserProfiles": [{ + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }], "ControlTime": "2026-10-20T12:46:46.490644767Z"}}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true + }], "PacketFilter": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "UserProfiles": [{ + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }], "ControlTime": "2026-10-20T12:46:46.490214694Z"}}] + } + }, { + "name": "S12", + "at": "2026-10-20T12:47:06.506392574Z", + "result": "observed", + "actions": [ + { + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + } + }, + {"kind": "barrier", "args": ["observer alone"], "offset_ms": 1139}, + {"kind": "wait", "args": ["15s"], "offset_ms": 1139} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 6229591427943053, + "StableID": "nrMiFboPeq11CNTRL", + "Name": "late.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bf154a5a85a2b512eacb1a537c11a9d523aa69f93de8e65cebdd8f0f289cd060", + "KeyExpiry": "2027-04-18T12:45:48Z", + "DiscoKey": "discokey:919351dda36dc01e80e628d47fa41e1e465fdb335c9108ce23cd39bfb926873d", + "Addresses": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "AllowedIPs": ["100.92.208.96/32", "fd7a:115c:a1e0::2828:d061/128"], + "Endpoints": [ + "192.0.2.1:54394", + "198.51.100.1:54394", + "198.51.100.2:54394", + "198.51.100.3:54394", + "198.51.100.4:54394", + "198.51.100.5:54394", + "198.51.100.6:54394", + "198.51.100.7:54394" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "late", "Services": [ + {"Proto": "peerapi4", "Port": 43649}, + {"Proto": "peerapi6", "Port": 43649} + ]}, + "Created": "2026-10-20T12:45:48.644043161Z", + "Cap": 142, + "Online": true, + "ComputedName": "late", + "ComputedNameWithHost": "late" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "frames": {"observer": [{"offset_ms": 0, "response": { + "PeersRemoved": [6229591427943053, 7548417557927527], + "ControlTime": "2026-10-20T12:47:06.637480356Z" + }}], "witness": [{ + "offset_ms": 0, + "response": {"PeersRemoved": [7878954180964553], "PacketFilter": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "ControlTime": "2026-10-20T12:47:06.637159715Z"} + }]} + }, { + "name": "S13", + "at": "2026-10-20T12:47:26.657041113Z", + "result": "observed", + "actions": [ + { + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/device/{device:late}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, + {"kind": "barrier", "args": ["witness loses late"], "offset_ms": 21}, + {"kind": "wait", "args": ["15s"], "offset_ms": 21}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:late}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "no manageable device matching this ID found"}, + "offset_ms": 15021 + }, + {"kind": "retire", "node": "late", "offset_ms": 15058} + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "witness": {"packet_filter_rules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.104.144.97/32", + "100.92.208.96/32", + "fd7a:115c:a1e0::2828:d061/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": [ + "100.104.144.97", + "100.92.208.96", + "fd7a:115c:a1e0::2828:d061", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "frames": { + "witness": [{"offset_ms": 0, "response": {"PeersRemoved": [6229591427943053]}}] + } + }] +} diff --git a/hscontrol/servertest/testdata/steps/route-announce.hujson b/hscontrol/servertest/testdata/steps/route-announce.hujson new file mode 100644 index 000000000..39b6b1b06 --- /dev/null +++ b/hscontrol/servertest/testdata/steps/route-announce.hujson @@ -0,0 +1,17287 @@ +// route-announce +// +// A tagged router and the nodes around it while it renames, announces and drops 10.30.0.0/24, which no approver covers, around an admin approval and revoke of it, under a global, an autogroup:self and a via policy. witness (odin) is the member using the router's routes, observer (thor) the other member, srv reaches the router, wit is named by no rule. witness and observer stay from hidden-peers when it ran first (RA0's note says so, and RA0 holds copies of their key and join actions) and join in RA0 otherwise. rtr's routes as the API reports them close every step. TS_DEBUG_MAP logs a stream's first keepalive only, so repeated keepalives are not in the frames. +// +// Nodes with filter rules: 3 of 5 +// Steps: 12 +// Captured at: 2026-10-20T12:47:45Z +// tool version: saasprobe dd3efab44b0524074077c2aca9672118c7c4829f +// schema version: 1 +{ + "schema_version": 1, + "test_id": "route-announce", + "description": "A tagged router and the nodes around it while it renames, announces and drops 10.30.0.0/24, which no approver covers, around an admin approval and revoke of it, under a global, an autogroup:self and a via policy. witness (odin) is the member using the router's routes, observer (thor) the other member, srv reaches the router, wit is named by no rule. witness and observer stay from hidden-peers when it ran first (RA0's note says so, and RA0 holds copies of their key and join actions) and join in RA0 otherwise. rtr's routes as the API reports them close every step. TS_DEBUG_MAP logs a stream's first keepalive only, so repeated keepalives are not in the frames.", + "captured_at": "2026-10-20T12:47:45.747484585Z", + "tool_version": "saasprobe dd3efab44b0524074077c2aca9672118c7c4829f", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": {"api_response_code": 0, "tailnet": {"dns": { + "magic_dns": false, + "nameservers": null, + "search_paths": null, + "split_dns": null + }, "settings": {}}, "scenario_hujson": "", "full_policy": { + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + }, + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "acls": [{ + "action": "accept", + "src": ["odin@example.com"], + "dst": ["odin@example.com:*"] + }, { + "action": "accept", + "src": ["thor@example.org"], + "dst": ["thor@example.org:*"] + }, {"action": "accept", "src": ["tag:server"], "dst": ["tag:router:*"]}, { + "action": "accept", + "src": ["autogroup:member"], + "dst": ["10.20.1.0/24:*"] + }, { + "action": "accept", + "src": ["autogroup:member"], + "dst": ["10.30.0.0/24:*"] + }] + }}, + "topology": {"users": [ + {"id": 1, "name": "odin", "email": "odin@example.com"}, + {"id": 2, "name": "thor", "email": "thor@example.org"}, + {"id": 3, "name": "freya", "email": "freya@example.com"} + ], "nodes": {"observer": { + "hostname": "observer", + "tags": [], + "ipv4": "100.101.177.2", + "ipv6": "fd7a:115c:a1e0::5728:b103", + "user": "thor", + "routable_ips": [], + "approved_routes": [] + }, "rtr": { + "hostname": "rtr", + "tags": ["tag:router"], + "ipv4": "100.118.137.50", + "ipv6": "fd7a:115c:a1e0::7728:8933", + "routable_ips": [], + "approved_routes": [] + }, "srv": { + "hostname": "srv", + "tags": ["tag:server"], + "ipv4": "100.72.25.49", + "ipv6": "fd7a:115c:a1e0::dd28:1932", + "routable_ips": [], + "approved_routes": [] + }, "wit": { + "hostname": "wit", + "tags": ["tag:witness"], + "ipv4": "100.75.170.54", + "ipv6": "fd7a:115c:a1e0::f228:aa37", + "routable_ips": [], + "approved_routes": [] + }, "witness": { + "hostname": "witness", + "tags": [], + "ipv4": "100.104.144.97", + "ipv6": "fd7a:115c:a1e0::9428:9062", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr.tail78f774.ts.net", + "DisplayName": "rtr" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": {"Regions": {"1": { + "RegionID": 1, + "RegionCode": "nyc", + "RegionName": "New York City", + "Latitude": 40.7128, + "Longitude": -74.006, + "Nodes": [{ + "Name": "1h", + "RegionID": 1, + "HostName": "derp1h.tailscale.com", + "IPv4": "199.38.181.93", + "IPv6": "2607:f740:f::afd", + "CanPort80": true + }, { + "Name": "1g", + "RegionID": 1, + "HostName": "derp1g.tailscale.com", + "IPv4": "209.177.145.120", + "IPv6": "2607:f740:f::3eb", + "CanPort80": true + }, { + "Name": "1i", + "RegionID": 1, + "HostName": "derp1i.tailscale.com", + "IPv4": "199.38.181.103", + "IPv6": "2607:f740:f::e19", + "CanPort80": true + }, { + "Name": "1f", + "RegionID": 1, + "HostName": "derp1f.tailscale.com", + "IPv4": "199.38.181.104", + "IPv6": "2607:f740:f::bc", + "CanPort80": true + }] + }, "10": { + "RegionID": 10, + "RegionCode": "sea", + "RegionName": "Seattle", + "Latitude": 47.609722, + "Longitude": -122.333056, + "Nodes": [{ + "Name": "10c", + "RegionID": 10, + "HostName": "derp10c.tailscale.com", + "IPv4": "192.73.240.121", + "IPv6": "2607:f740:14::40c", + "CanPort80": true + }, { + "Name": "10d", + "RegionID": 10, + "HostName": "derp10d.tailscale.com", + "IPv4": "192.73.240.132", + "IPv6": "2607:f740:14::500", + "CanPort80": true + }, { + "Name": "10b", + "RegionID": 10, + "HostName": "derp10b.tailscale.com", + "IPv4": "192.73.240.161", + "IPv6": "2607:f740:14::61c", + "CanPort80": true + }] + }, "11": { + "RegionID": 11, + "RegionCode": "sao", + "RegionName": "São Paulo", + "Latitude": -23.55, + "Longitude": -46.633333, + "Nodes": [{ + "Name": "11f", + "RegionID": 11, + "HostName": "derp11f.tailscale.com", + "IPv4": "172.237.61.197", + "IPv6": "2600:3c0d::2000:3bff:fe44:6166", + "CanPort80": true + }, { + "Name": "11g", + "RegionID": 11, + "HostName": "derp11g.tailscale.com", + "IPv4": "172.237.61.190", + "IPv6": "2600:3c0d::2000:62ff:febe:2e67", + "CanPort80": true + }, { + "Name": "11e", + "RegionID": 11, + "HostName": "derp11e.tailscale.com", + "IPv4": "172.237.61.194", + "IPv6": "2600:3c0d::2000:d2ff:fe43:1790", + "CanPort80": true + }] + }, "12": { + "RegionID": 12, + "RegionCode": "ord", + "RegionName": "Chicago", + "Latitude": 41.881944, + "Longitude": -87.627778, + "Nodes": [{ + "Name": "12e", + "RegionID": 12, + "HostName": "derp12e.tailscale.com", + "IPv4": "209.177.158.15", + "IPv6": "2607:f740:e::b17", + "CanPort80": true + }, { + "Name": "12f", + "RegionID": 12, + "HostName": "derp12f.tailscale.com", + "IPv4": "199.38.182.118", + "IPv6": "2607:f740:e::4c8", + "CanPort80": true + }, { + "Name": "12d", + "RegionID": 12, + "HostName": "derp12d.tailscale.com", + "IPv4": "209.177.158.246", + "IPv6": "2607:f740:e::811", + "CanPort80": true + }] + }, "13": { + "RegionID": 13, + "RegionCode": "den", + "RegionName": "Denver", + "Latitude": 39.7392, + "Longitude": -104.9849, + "Nodes": [{ + "Name": "13c", + "RegionID": 13, + "HostName": "derp13c.tailscale.com", + "IPv4": "192.73.242.28", + "IPv6": "2607:f740:16::5c", + "CanPort80": true + }, { + "Name": "13d", + "RegionID": 13, + "HostName": "derp13d.tailscale.com", + "IPv4": "192.73.242.204", + "IPv6": "2607:f740:16::c23", + "CanPort80": true + }, { + "Name": "13b", + "RegionID": 13, + "HostName": "derp13b.tailscale.com", + "IPv4": "192.73.242.187", + "IPv6": "2607:f740:16::640", + "CanPort80": true + }] + }, "14": { + "RegionID": 14, + "RegionCode": "ams", + "RegionName": "Amsterdam", + "Latitude": 52.372778, + "Longitude": 4.893611, + "Nodes": [{ + "Name": "14c", + "RegionID": 14, + "HostName": "derp14c.tailscale.com", + "IPv4": "176.58.93.147", + "IPv6": "2a00:dd80:3c::b09", + "CanPort80": true + }, { + "Name": "14d", + "RegionID": 14, + "HostName": "derp14d.tailscale.com", + "IPv4": "176.58.93.154", + "IPv6": "2a00:dd80:3c::3d5", + "CanPort80": true + }, { + "Name": "14b", + "RegionID": 14, + "HostName": "derp14b.tailscale.com", + "IPv4": "176.58.93.248", + "IPv6": "2a00:dd80:3c::807", + "CanPort80": true + }] + }, "15": { + "RegionID": 15, + "RegionCode": "jnb", + "RegionName": "Johannesburg", + "Latitude": -26.204444, + "Longitude": 28.045556, + "Nodes": [{ + "Name": "15c", + "RegionID": 15, + "HostName": "derp15c.tailscale.com", + "IPv4": "102.67.165.185", + "IPv6": "2c0f:edb0:0:10::b59", + "CanPort80": true + }, { + "Name": "15d", + "RegionID": 15, + "HostName": "derp15d.tailscale.com", + "IPv4": "102.67.165.36", + "IPv6": "2c0f:edb0:0:10::599", + "CanPort80": true + }, { + "Name": "15b", + "RegionID": 15, + "HostName": "derp15b.tailscale.com", + "IPv4": "102.67.165.90", + "IPv6": "2c0f:edb0:0:10::963", + "CanPort80": true + }] + }, "16": { + "RegionID": 16, + "RegionCode": "mia", + "RegionName": "Miami", + "Latitude": 25.78, + "Longitude": -80.21, + "Nodes": [{ + "Name": "16c", + "RegionID": 16, + "HostName": "derp16c.tailscale.com", + "IPv4": "192.73.243.229", + "IPv6": "2607:f740:17::4e4", + "CanPort80": true + }, { + "Name": "16d", + "RegionID": 16, + "HostName": "derp16d.tailscale.com", + "IPv4": "192.73.243.141", + "IPv6": "2607:f740:17::475", + "CanPort80": true + }, { + "Name": "16b", + "RegionID": 16, + "HostName": "derp16b.tailscale.com", + "IPv4": "192.73.243.135", + "IPv6": "2607:f740:17::476", + "CanPort80": true + }] + }, "17": { + "RegionID": 17, + "RegionCode": "lax", + "RegionName": "Los Angeles", + "Latitude": 34.05, + "Longitude": -118.25, + "Nodes": [{ + "Name": "17c", + "RegionID": 17, + "HostName": "derp17c.tailscale.com", + "IPv4": "208.111.40.12", + "IPv6": "2607:f740:c::10", + "CanPort80": true + }, { + "Name": "17d", + "RegionID": 17, + "HostName": "derp17d.tailscale.com", + "IPv4": "208.111.40.216", + "IPv6": "2607:f740:c::e1b", + "CanPort80": true + }, { + "Name": "17b", + "RegionID": 17, + "HostName": "derp17b.tailscale.com", + "IPv4": "192.73.244.245", + "IPv6": "2607:f740:c::646", + "CanPort80": true + }] + }, "18": { + "RegionID": 18, + "RegionCode": "par", + "RegionName": "Paris", + "Latitude": 48.856667, + "Longitude": 2.352222, + "Nodes": [{ + "Name": "18c", + "RegionID": 18, + "HostName": "derp18c.tailscale.com", + "IPv4": "176.58.90.207", + "IPv6": "2a00:dd80:3e::c19", + "CanPort80": true + }, { + "Name": "18d", + "RegionID": 18, + "HostName": "derp18d.tailscale.com", + "IPv4": "176.58.90.104", + "IPv6": "2a00:dd80:3e::f2e", + "CanPort80": true + }, { + "Name": "18b", + "RegionID": 18, + "HostName": "derp18b.tailscale.com", + "IPv4": "176.58.90.147", + "IPv6": "2a00:dd80:3e::363", + "CanPort80": true + }] + }, "19": { + "RegionID": 19, + "RegionCode": "mad", + "RegionName": "Madrid", + "Latitude": 40.416944, + "Longitude": -3.703333, + "Nodes": [{ + "Name": "19c", + "RegionID": 19, + "HostName": "derp19c.tailscale.com", + "IPv4": "45.159.97.61", + "IPv6": "2a00:dd80:14:10::20", + "CanPort80": true + }, { + "Name": "19d", + "RegionID": 19, + "HostName": "derp19d.tailscale.com", + "IPv4": "45.159.97.233", + "IPv6": "2a00:dd80:14:10::34a", + "CanPort80": true + }, { + "Name": "19b", + "RegionID": 19, + "HostName": "derp19b.tailscale.com", + "IPv4": "45.159.97.144", + "IPv6": "2a00:dd80:14:10::335", + "CanPort80": true + }] + }, "2": { + "RegionID": 2, + "RegionCode": "sfo", + "RegionName": "San Francisco", + "Latitude": 37.7775, + "Longitude": -122.416389, + "Nodes": [{ + "Name": "2e", + "RegionID": 2, + "HostName": "derp2e.tailscale.com", + "IPv4": "192.73.252.134", + "IPv6": "2607:f740:0:3f::44c", + "CanPort80": true + }, { + "Name": "2f", + "RegionID": 2, + "HostName": "derp2f.tailscale.com", + "IPv4": "208.111.34.178", + "IPv6": "2607:f740:0:3f::f4", + "CanPort80": true + }, { + "Name": "2d", + "RegionID": 2, + "HostName": "derp2d.tailscale.com", + "IPv4": "192.73.252.65", + "IPv6": "2607:f740:0:3f::287", + "CanPort80": true + }] + }, "20": { + "RegionID": 20, + "RegionCode": "hkg", + "RegionName": "Hong Kong", + "Latitude": 22.3193, + "Longitude": 114.1694, + "Nodes": [{ + "Name": "20c", + "RegionID": 20, + "HostName": "derp20c.tailscale.com", + "IPv4": "205.147.105.30", + "IPv6": "2403:2500:8000:1::5fb", + "CanPort80": true + }, { + "Name": "20d", + "RegionID": 20, + "HostName": "derp20d.tailscale.com", + "IPv4": "205.147.105.78", + "IPv6": "2403:2500:8000:1::e9a", + "CanPort80": true + }, { + "Name": "20b", + "RegionID": 20, + "HostName": "derp20b.tailscale.com", + "IPv4": "103.6.84.152", + "IPv6": "2403:2500:8000:1::ef6", + "CanPort80": true + }] + }, "21": { + "RegionID": 21, + "RegionCode": "tor", + "RegionName": "Toronto", + "Latitude": 43.741667, + "Longitude": -79.373333, + "Nodes": [{ + "Name": "21c", + "RegionID": 21, + "HostName": "derp21c.tailscale.com", + "IPv4": "162.248.221.215", + "IPv6": "2607:f740:50::f10", + "CanPort80": true + }, { + "Name": "21d", + "RegionID": 21, + "HostName": "derp21d.tailscale.com", + "IPv4": "162.248.221.248", + "IPv6": "2607:f740:50::ca4", + "CanPort80": true + }, { + "Name": "21b", + "RegionID": 21, + "HostName": "derp21b.tailscale.com", + "IPv4": "162.248.221.199", + "IPv6": "2607:f740:50::1d1", + "CanPort80": true + }] + }, "22": { + "RegionID": 22, + "RegionCode": "waw", + "RegionName": "Warsaw", + "Latitude": 52.23, + "Longitude": 21.011111, + "Nodes": [{ + "Name": "22c", + "RegionID": 22, + "HostName": "derp22c.tailscale.com", + "IPv4": "45.159.98.253", + "IPv6": "2a00:dd80:40:100::3f", + "CanPort80": true + }, { + "Name": "22d", + "RegionID": 22, + "HostName": "derp22d.tailscale.com", + "IPv4": "45.159.98.145", + "IPv6": "2a00:dd80:40:100::211", + "CanPort80": true + }, { + "Name": "22b", + "RegionID": 22, + "HostName": "derp22b.tailscale.com", + "IPv4": "45.159.98.196", + "IPv6": "2a00:dd80:40:100::316", + "CanPort80": true + }] + }, "23": { + "RegionID": 23, + "RegionCode": "dbi", + "RegionName": "Dubai", + "Latitude": 25.263056, + "Longitude": 55.297222, + "Nodes": [{ + "Name": "23c", + "RegionID": 23, + "HostName": "derp23c.tailscale.com", + "IPv4": "185.34.3.207", + "IPv6": "2a00:dd80:3f:100::a50", + "CanPort80": true + }, { + "Name": "23d", + "RegionID": 23, + "HostName": "derp23d.tailscale.com", + "IPv4": "185.34.3.75", + "IPv6": "2a00:dd80:3f:100::97e", + "CanPort80": true + }, { + "Name": "23b", + "RegionID": 23, + "HostName": "derp23b.tailscale.com", + "IPv4": "185.34.3.232", + "IPv6": "2a00:dd80:3f:100::76f", + "CanPort80": true + }] + }, "24": { + "RegionID": 24, + "RegionCode": "hnl", + "RegionName": "Honolulu", + "Latitude": 21.306944, + "Longitude": -157.858333, + "Nodes": [{ + "Name": "24c", + "RegionID": 24, + "HostName": "derp24c.tailscale.com", + "IPv4": "208.83.233.233", + "IPv6": "2001:19f0:c000:c591:5400:04ff:fe26:2c5f", + "CanPort80": true + }, { + "Name": "24d", + "RegionID": 24, + "HostName": "derp24d.tailscale.com", + "IPv4": "208.72.155.133", + "IPv6": "2001:19f0:c000:c564:5400:04ff:fe26:2ba8", + "CanPort80": true + }, { + "Name": "24b", + "RegionID": 24, + "HostName": "derp24b.tailscale.com", + "IPv4": "208.83.234.151", + "IPv6": "2001:19f0:c000:c586:5400:04ff:fe26:2ba6", + "CanPort80": true + }] + }, "25": { + "RegionID": 25, + "RegionCode": "nai", + "RegionName": "Nairobi", + "Latitude": -1.286389, + "Longitude": 36.817222, + "Nodes": [{ + "Name": "25c", + "RegionID": 25, + "HostName": "derp25c.tailscale.com", + "IPv4": "102.67.167.37", + "IPv6": "2c0f:edb0:2000:1::2c7", + "CanPort80": true + }, { + "Name": "25d", + "RegionID": 25, + "HostName": "derp25d.tailscale.com", + "IPv4": "102.67.167.188", + "IPv6": "2c0f:edb0:2000:1::188", + "CanPort80": true + }, { + "Name": "25b", + "RegionID": 25, + "HostName": "derp25b.tailscale.com", + "IPv4": "102.67.167.245", + "IPv6": "2c0f:edb0:2000:1::2e9", + "CanPort80": true + }] + }, "26": { + "RegionID": 26, + "RegionCode": "nue", + "RegionName": "Nuremberg", + "Latitude": 49.453889, + "Longitude": 11.0775, + "Nodes": [{ + "Name": "26c", + "RegionID": 26, + "HostName": "derp26c.tailscale.com", + "IPv4": "49.12.193.137", + "IPv6": "2a01:4f8:1c1c:5c70::1", + "CanPort80": true + }, { + "Name": "26d", + "RegionID": 26, + "HostName": "derp26d.tailscale.com", + "IPv4": "49.13.204.141", + "IPv6": "2a01:4f8:1c0c:7d06::1", + "CanPort80": true + }, { + "Name": "26b", + "RegionID": 26, + "HostName": "derp26b.tailscale.com", + "IPv4": "167.235.72.200", + "IPv6": "2a01:4f8:1c1c:47b6::1", + "CanPort80": true + }] + }, "27": { + "RegionID": 27, + "RegionCode": "iad", + "RegionName": "Ashburn", + "Latitude": 39.03, + "Longitude": -77.471111, + "Nodes": [{ + "Name": "27d", + "RegionID": 27, + "HostName": "derp27d.tailscale.com", + "IPv4": "178.156.152.106", + "IPv6": "2a01:4ff:f0:3c8e::1", + "CanPort80": true + }, { + "Name": "27c", + "RegionID": 27, + "HostName": "derp27c.tailscale.com", + "IPv4": "178.156.152.91", + "IPv6": "2a01:4ff:f0:3913::1", + "CanPort80": true + }, { + "Name": "27e", + "RegionID": 27, + "HostName": "derp27e.tailscale.com", + "IPv4": "178.156.134.232", + "IPv6": "2a01:4ff:f0:28d4::1", + "CanPort80": true + }, { + "Name": "27b", + "RegionID": 27, + "HostName": "derp27b.tailscale.com", + "IPv4": "5.161.218.233", + "IPv6": "2a01:4ff:f0:3db9::1", + "CanPort80": true + }] + }, "28": { + "RegionID": 28, + "RegionCode": "hel", + "RegionName": "Helsinki", + "Latitude": 60.170833, + "Longitude": 24.9375, + "Nodes": [{ + "Name": "28c", + "RegionID": 28, + "HostName": "derp28c.tailscale.com", + "IPv4": "95.217.2.165", + "IPv6": "2a01:4f9:c012:cd74::1", + "CanPort80": true + }, { + "Name": "28d", + "RegionID": 28, + "HostName": "derp28d.tailscale.com", + "IPv4": "157.180.28.32", + "IPv6": "2a01:4f9:c012:2e5b::1", + "CanPort80": true + }, { + "Name": "28b", + "RegionID": 28, + "HostName": "derp28b.tailscale.com", + "IPv4": "65.109.143.62", + "IPv6": "2a01:4f9:c012:d55c::1", + "CanPort80": true + }] + }, "3": { + "RegionID": 3, + "RegionCode": "sin", + "RegionName": "Singapore", + "Latitude": 1.3521, + "Longitude": 103.8198, + "Nodes": [{ + "Name": "3g", + "RegionID": 3, + "HostName": "derp3g.tailscale.com", + "IPv4": "172.237.72.79", + "IPv6": "2600:3c15::2000:adff:fe08:6fab", + "CanPort80": true + }, { + "Name": "3f", + "RegionID": 3, + "HostName": "derp3f.tailscale.com", + "IPv4": "172.237.72.8", + "IPv6": "2600:3c15::2000:53ff:fe48:a668", + "CanPort80": true + }, { + "Name": "3h", + "RegionID": 3, + "HostName": "derp3h.tailscale.com", + "IPv4": "172.237.66.30", + "IPv6": "2600:3c15::2000:3dff:fe44:50aa", + "CanPort80": true + }, { + "Name": "3e", + "RegionID": 3, + "HostName": "derp3e.tailscale.com", + "IPv4": "172.237.72.43", + "IPv6": "2600:3c15::2000:6cff:fee4:d799", + "CanPort80": true + }] + }, "4": { + "RegionID": 4, + "RegionCode": "fra", + "RegionName": "Frankfurt", + "Latitude": 50.1109, + "Longitude": 8.6821, + "Nodes": [{ + "Name": "4h", + "RegionID": 4, + "HostName": "derp4h.tailscale.com", + "IPv4": "185.40.234.77", + "IPv6": "2a00:dd80:20::bcf", + "CanPort80": true + }, { + "Name": "4i", + "RegionID": 4, + "HostName": "derp4i.tailscale.com", + "IPv4": "185.40.234.53", + "IPv6": "2a00:dd80:20::8a6", + "CanPort80": true + }, { + "Name": "4g", + "RegionID": 4, + "HostName": "derp4g.tailscale.com", + "IPv4": "185.40.234.113", + "IPv6": "2a00:dd80:20::8f", + "CanPort80": true + }, { + "Name": "4j", + "RegionID": 4, + "HostName": "derp4j.tailscale.com", + "IPv4": "185.40.234.176", + "IPv6": "2a00:dd80:20::e67", + "CanPort80": true + }, { + "Name": "4f", + "RegionID": 4, + "HostName": "derp4f.tailscale.com", + "IPv4": "185.40.234.219", + "IPv6": "2a00:dd80:20::a25", + "CanPort80": true + }] + }, "5": { + "RegionID": 5, + "RegionCode": "syd", + "RegionName": "Sydney", + "Latitude": -33.867778, + "Longitude": 151.21, + "Nodes": [{ + "Name": "5f", + "RegionID": 5, + "HostName": "derp5f.tailscale.com", + "IPv4": "172.105.166.103", + "IPv6": "2400:8907::2000:ccff:fe1f:80da", + "CanPort80": true + }, { + "Name": "5g", + "RegionID": 5, + "HostName": "derp5g.tailscale.com", + "IPv4": "172.105.169.57", + "IPv6": "2400:8907::2000:2fff:fea7:57f4", + "CanPort80": true + }, { + "Name": "5e", + "RegionID": 5, + "HostName": "derp5e.tailscale.com", + "IPv4": "172.105.179.230", + "IPv6": "2400:8907::2000:ceff:fe8d:4f4e", + "CanPort80": true + }] + }, "6": { + "RegionID": 6, + "RegionCode": "blr", + "RegionName": "Bengaluru", + "Latitude": 12.9716, + "Longitude": 77.5946, + "Nodes": [{ + "Name": "6a", + "RegionID": 6, + "HostName": "derp6.tailscale.com", + "IPv4": "68.183.90.120", + "IPv6": "2400:6180:100:d0::982:d001", + "CanPort80": true + }] + }, "7": { + "RegionID": 7, + "RegionCode": "tok", + "RegionName": "Tokyo", + "Latitude": 35.6764, + "Longitude": 139.65, + "Nodes": [{ + "Name": "7g", + "RegionID": 7, + "HostName": "derp7g.tailscale.com", + "IPv4": "172.238.6.179", + "IPv6": "2600:3c18::2000:3fff:fe80:3ebd", + "CanPort80": true + }, { + "Name": "7f", + "RegionID": 7, + "HostName": "derp7f.tailscale.com", + "IPv4": "172.238.6.34", + "IPv6": "2600:3c18::2000:acff:fe8e:3ed5", + "CanPort80": true + }, { + "Name": "7h", + "RegionID": 7, + "HostName": "derp7h.tailscale.com", + "IPv4": "172.237.28.183", + "IPv6": "2600:3c18::2000:b1ff:fea9:4560", + "CanPort80": true + }, { + "Name": "7e", + "RegionID": 7, + "HostName": "derp7e.tailscale.com", + "IPv4": "172.238.6.180", + "IPv6": "2600:3c18::2000:60ff:fe0f:6e83", + "STUNOnly": true, + "CanPort80": true + }] + }, "8": { + "RegionID": 8, + "RegionCode": "lhr", + "RegionName": "London", + "Latitude": 51.5072, + "Longitude": 0.1276, + "Nodes": [{ + "Name": "8f", + "RegionID": 8, + "HostName": "derp8f.tailscale.com", + "IPv4": "176.58.88.183", + "IPv6": "2a00:dd80:3a::dfa", + "CanPort80": true + }, { + "Name": "8g", + "RegionID": 8, + "HostName": "derp8g.tailscale.com", + "IPv4": "176.58.92.254", + "IPv6": "2a00:dd80:3a::ed", + "CanPort80": true + }, { + "Name": "8e", + "RegionID": 8, + "HostName": "derp8e.tailscale.com", + "IPv4": "176.58.92.144", + "IPv6": "2a00:dd80:3a::b33", + "CanPort80": true + }] + }, "9": { + "RegionID": 9, + "RegionCode": "dfw", + "RegionName": "Dallas", + "Latitude": 32.779167, + "Longitude": -96.808889, + "Nodes": [{ + "Name": "9e", + "RegionID": 9, + "HostName": "derp9e.tailscale.com", + "IPv4": "192.73.248.83", + "IPv6": "2607:f740:100::359", + "CanPort80": true + }, { + "Name": "9f", + "RegionID": 9, + "HostName": "derp9f.tailscale.com", + "IPv4": "209.177.156.197", + "IPv6": "2607:f740:100::cad", + "CanPort80": true + }, { + "Name": "9d", + "RegionID": 9, + "HostName": "derp9d.tailscale.com", + "IPv4": "209.177.156.94", + "IPv6": "2607:f740:100::c05", + "CanPort80": true + }] + }}}, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "node_ids": { + "observer": 7878954180964553, + "rtr": 2149381438984258, + "srv": 8385822766678919, + "wit": 2153250986399324, + "witness": 7548417557927527 + }, + "steps": [{ + "name": "RA0", + "at": "2026-10-20T12:47:45.747507239Z", + "note": "kept from hidden-peers: witness, observer; their keys and joins copied in, timed before the mark", + "result": "observed", + "actions": [ + { + "kind": "api", + "key": "K-witness", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-witness", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:35Z", + "description": "tscap-saasprobe K-witness", + "expires": "2026-10-20T13:42:35Z", + "expirySeconds": 3600, + "id": "{key:K-witness}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": -312799 + }, + { + "kind": "api", + "key": "K-observer", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": false, "tags": null} + }}, "description": "tscap-saasprobe K-observer", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-20T12:42:41Z", + "description": "tscap-saasprobe K-observer", + "expires": "2026-10-20T13:42:41Z", + "expirySeconds": 3600, + "id": "{key:K-observer}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": -306740 + }, + { + "kind": "join", + "node": "witness", + "key": "K-witness", + "hostname": "witness", + "offset_ms": -302365 + }, + { + "kind": "join", + "node": "observer", + "key": "K-observer", + "hostname": "observer", + "offset_ms": -280160 + }, + { + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "offset_ms": 17 + }, + { + "kind": "api", + "key": "K-rtr", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:router"] + }}}, "description": "tscap-saasprobe K-rtr", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:router"] + }}}, + "created": "2026-10-20T12:47:48Z", + "description": "tscap-saasprobe K-rtr", + "expires": "2026-10-20T13:47:48Z", + "expirySeconds": 3600, + "id": "{key:K-rtr}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 35 + }, + { + "kind": "api", + "key": "K-srv", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:server"] + }}}, "description": "tscap-saasprobe K-srv", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:server"] + }}}, + "created": "2026-10-20T12:47:50Z", + "description": "tscap-saasprobe K-srv", + "expires": "2026-10-20T13:47:50Z", + "expirySeconds": 3600, + "id": "{key:K-srv}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2070 + }, + { + "kind": "api", + "key": "K-wit", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:witness"] + }}}, "description": "tscap-saasprobe K-wit", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:witness"] + }}}, + "created": "2026-10-20T12:47:52Z", + "description": "tscap-saasprobe K-wit", + "expires": "2026-10-20T13:47:52Z", + "expirySeconds": 3600, + "id": "{key:K-wit}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4088 + }, + { + "kind": "join", + "node": "rtr", + "key": "K-rtr", + "request_tags": ["tag:router"], + "hostname": "rtr", + "offset_ms": 6227 + }, + { + "kind": "join", + "node": "srv", + "key": "K-srv", + "request_tags": ["tag:server"], + "hostname": "srv", + "offset_ms": 7125 + }, + { + "kind": "join", + "node": "wit", + "key": "K-wit", + "request_tags": ["tag:witness"], + "hostname": "wit", + "offset_ms": 7779 + }, + { + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24"], + "exit": 0, + "offset_ms": 8323 + }, + {"kind": "barrier", "args": [ + "witness and observer get 10.20.1.0/24 from rtr; srv sees rtr; wit sees no one" + ], "offset_ms": 9350}, + {"kind": "wait", "args": ["30s"], "offset_ms": 9350}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 49370 + } + ], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr.tail78f774.ts.net", + "DisplayName": "rtr" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr", + "ComputedNameWithHost": "rtr" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "register": {"rtr": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 6252 + }], "srv": [{ + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 6252 + }], "wit": [{ + "node_key": "{nodekey:8}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 7252 + }]}, + "frames": { + "observer": [{"offset_ms": 8252, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "UserProfiles": [{ + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }], "ControlTime": "2026-10-20T12:47:54.128276014Z"}}], + "rtr": [{"offset_ms": 6252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Stream": true, + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:router"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 6252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:router"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, { + "offset_ms": 6252, + "response": { + "Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Hostinfo": { + "Hostname": "rtr", + "RequestTags": ["tag:router"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "DNSConfig": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "Domain": "odin@example.com", + "UserProfiles": [{ + "ID": 2149381438984258, + "LoginName": "rtr.tail78f774.ts.net", + "DisplayName": "rtr" + }], + "SSHPolicy": {"rules": []}, + "ControlTime": "2026-10-20T12:47:52.217262925Z" + }, + "empty": {"PacketFilter": "[]"}, + "dropped": ["DERPMap", "ControlDialPlan"] + }, {"offset_ms": 6252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 6252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 6252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 7252, "response": { + "Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": {"Hostname": "rtr", "RequestTags": ["tag:router"], "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "PeersChanged": [{ + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Hostinfo": {"OS": "linux", "Hostname": "srv"}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true + }], + "PacketFilter": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}], + "UserProfiles": [{ + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }], + "ControlTime": "2026-10-20T12:47:53.014386199Z" + }}, {"offset_ms": 7252, "response": {"PeersChanged": [{ + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Hostinfo": {"OS": "linux", "Hostname": "srv"}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true + }]}}, {"offset_ms": 7252, "response": {"PeersChanged": [{ + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true + }]}}, {"offset_ms": 7252, "response": {"PeersChanged": [{ + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true + }]}}, { + "offset_ms": 7252, + "response": {"PeersChangedPatch": [{"NodeID": 8385822766678919, "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ]}]} + }, { + "offset_ms": 7252, + "response": {"PeersChangedPatch": [{"NodeID": 8385822766678919, "Online": true}]} + }, {"offset_ms": 8252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 8252, "response": { + "Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "PeersChanged": [{ + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true + }, { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true + }], + "PacketFilter": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "UserProfiles": [{ + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }], + "ControlTime": "2026-10-20T12:47:54.127203959Z" + }}, {"offset_ms": 58252, "response": {"KeepAlive": true}}], + "srv": [ + {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "srv", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:server"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Stream": true, + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "srv", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:server"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "DebugFlags": ["netstack"] + }}, + { + "offset_ms": 7252, + "response": { + "Node": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Hostinfo": { + "Hostname": "srv", + "RequestTags": ["tag:server"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], + "DNSConfig": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "Domain": "odin@example.com", + "UserProfiles": [{ + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }], + "SSHPolicy": {"rules": []}, + "ControlTime": "2026-10-20T12:47:53.055694811Z" + }, + "empty": {"PacketFilter": "[]"}, + "dropped": ["DERPMap", "ControlDialPlan"] + }, + {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "srv", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:server"], + "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "srv", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:server"], + "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "srv", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:server"], + "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, + {"offset_ms": 7252, "response": {"Node": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:47:53.670074633Z"}}, + {"offset_ms": 8252, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], "ControlTime": "2026-10-20T12:47:54.128580355Z"}} + ], + "wit": [{"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "wit", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:witness"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Stream": true, + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "wit", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:witness"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "DebugFlags": ["netstack"] + }}, { + "offset_ms": 7252, + "response": { + "Node": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Hostinfo": { + "Hostname": "wit", + "RequestTags": ["tag:witness"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "DNSConfig": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "Domain": "odin@example.com", + "UserProfiles": [{ + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }], + "SSHPolicy": {"rules": []}, + "ControlTime": "2026-10-20T12:47:53.707591476Z" + }, + "empty": {"PacketFilter": "[]"}, + "dropped": ["DERPMap", "ControlDialPlan"] + }, {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "wit", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:witness"], + "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 7252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "wit", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:witness"], + "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 8252, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "wit", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RequestTags": ["tag:witness"], + "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 8252, "response": {"Node": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:47:54.127502051Z"}}], + "witness": [{"offset_ms": 0, "response": { + "PacketFilter": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:47:45.774845819Z" + }}, {"offset_ms": 8252, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "UserProfiles": [{ + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }], "ControlTime": "2026-10-20T12:47:54.127999704Z"}}] + } + }, { + "name": "RA1", + "at": "2026-10-20T12:48:45.170782177Z", + "result": "observed", + "actions": [{ + "kind": "cli", + "node": "rtr", + "hostname": "rtr-renamed", + "args": ["set", "--hostname=rtr-renamed"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["srv sees rtr named rtr-renamed"], + "offset_ms": 1019 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1019}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 16021 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:48:45.213607294Z"}}], + "rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "UserProfiles": [{ + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }], "ControlTime": "2026-10-20T12:48:45.212617391Z"}}], + "srv": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], "ControlTime": "2026-10-20T12:48:45.213859591Z"}}], + "wit": [{"offset_ms": 1829, "response": {"KeepAlive": true}}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:48:45.213232399Z"}}] + } + }, { + "name": "RA2", + "at": "2026-10-20T12:49:11.231753793Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24", "10.30.0.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24,10.30.0.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 true, not approved"], + "offset_ms": 2051 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 2051}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24"] + }, + "offset_ms": 32052 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:49:11.278347774Z"}}], + "srv": [{"offset_ms": 24768, "response": {"KeepAlive": true}}] + } + }, { + "name": "RA3", + "at": "2026-10-20T12:49:53.322686386Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:rtr}/routes", + "header": {"Content-Type": "application/json"}, + "body": {"routes": ["10.20.1.0/24", "10.30.0.0/24"]}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24", "10.30.0.0/24"] + } + }, { + "kind": "barrier", + "args": ["witness gets 10.30.0.0/24 from rtr"], + "offset_ms": 1021 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1021}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24", "10.30.0.0/24"] + }, + "offset_ms": 16028 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "10.30.0.0/24", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "10.30.0.0/24", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "10.30.0.0/24", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "10.30.0.0/24", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:49:53.336322983Z"}}], + "rtr": [{"offset_ms": 0, "response": { + "Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "PacketFilter": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, {"SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], "DstPorts": [ + {"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "10.30.0.0/24", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:49:53.335668513Z" + }}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": [ + "100.118.137.50/32", + "fd7a:115c:a1e0::7728:8933/128", + "10.20.1.0/24", + "10.30.0.0/24" + ], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:49:53.336125923Z"}}] + } + }, { + "name": "RA4", + "at": "2026-10-20T12:50:19.385289006Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:rtr}/routes", + "header": {"Content-Type": "application/json"}, + "body": {"routes": ["10.20.1.0/24"]}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24"] + } + }, { + "kind": "barrier", + "args": ["witness loses 10.30.0.0/24"], + "offset_ms": 1023 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 1023}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24"] + }, + "offset_ms": 16036 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:50:19.398715039Z"}}], + "rtr": [{"offset_ms": 0, "response": { + "Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, + "PacketFilter": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "ControlTime": "2026-10-20T12:50:19.399339146Z" + }}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:50:19.398437915Z"}}] + } + }, { + "name": "RA5", + "at": "2026-10-20T12:50:45.460533626Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 false, not approved"], + "offset_ms": 2093 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 2093}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 32095 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:50:45.545108024Z"}}], + "srv": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], "ControlTime": "2026-10-20T12:50:45.54620426Z"}}] + } + }, { + "name": "RA6", + "at": "2026-10-20T12:51:27.589402721Z", + "result": "observed", + "actions": [{ + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["autogroup:self:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:3}"}, + "response": { + "acls": [{ + "action": "accept", + "dst": ["odin@example.com:*"], + "src": ["odin@example.com"] + }, { + "action": "accept", + "dst": ["thor@example.org:*"], + "src": ["thor@example.org"] + }, {"action": "accept", "dst": ["tag:router:*"], "src": ["tag:server"]}, { + "action": "accept", + "dst": ["10.20.1.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["10.30.0.0/24:*"], + "src": ["autogroup:member"] + }, { + "action": "accept", + "dst": ["autogroup:self:*"], + "src": ["autogroup:member"] + }], + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + } + }, { + "kind": "barrier", + "args": ["policy reads back as pushed"], + "offset_ms": 37 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 37}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 15052 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": {"observer": [{"offset_ms": 0, "response": { + "PacketFilter": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:51:27.603831168Z" + }}], "witness": [{"offset_ms": 0, "response": { + "PacketFilter": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:51:27.603506271Z" + }}]} + }, { + "name": "RA7", + "at": "2026-10-20T12:51:52.675857237Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24", "10.30.0.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24,10.30.0.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 true, not approved"], + "offset_ms": 60 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 60}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24"] + }, + "offset_ms": 30060 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:51:52.71771633Z"}}], + "rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:51:52.717019146Z"}}], + "srv": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], "ControlTime": "2026-10-20T12:51:52.717818806Z"}}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:51:52.717576588Z"}}] + } + }, { + "name": "RA8", + "at": "2026-10-20T12:52:32.767495307Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 false, not approved"], + "offset_ms": 60 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 60}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 30060 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }, {"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": {"rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:52:32.805329823Z"}}]} + }, { + "name": "RA9", + "at": "2026-10-20T12:53:12.859350717Z", + "result": "observed", + "actions": [{ + "kind": "policy", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/hujson"}, + "body": { + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "grants": [ + {"dst": ["tag:router"], "ip": ["*"], "src": ["tag:server"]}, + { + "dst": ["10.20.1.0/24"], + "ip": ["*"], + "src": ["autogroup:member"], + "via": ["tag:router"] + }, + {"dst": ["10.30.0.0/24"], "ip": ["*"], "src": ["autogroup:member"]}, + {"dst": ["autogroup:self"], "ip": ["*"], "src": ["autogroup:member"]} + ], + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + }, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:4}"}, + "response": { + "autoApprovers": {"routes": {"10.20.0.0/16": ["tag:router"]}}, + "grants": [ + {"dst": ["tag:router"], "ip": ["*"], "src": ["tag:server"]}, + { + "dst": ["10.20.1.0/24"], + "ip": ["*"], + "src": ["autogroup:member"], + "via": ["tag:router"] + }, + {"dst": ["10.30.0.0/24"], "ip": ["*"], "src": ["autogroup:member"]}, + {"dst": ["autogroup:self"], "ip": ["*"], "src": ["autogroup:member"]} + ], + "tagOwners": { + "tag:router": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:witness": ["odin@example.com"] + } + } + }, { + "kind": "barrier", + "args": ["policy reads back as pushed"], + "offset_ms": 38 + }, {"kind": "wait", "args": ["15s"], "offset_ms": 38}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 15044 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": {"observer": [{"offset_ms": 0, "response": { + "PacketFilter": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:53:12.874691661Z" + }}], "witness": [{"offset_ms": 0, "response": { + "PacketFilter": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "ControlTime": "2026-10-20T12:53:12.874329812Z" + }}]} + }, { + "name": "RA10", + "at": "2026-10-20T12:53:37.93981447Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24", "10.30.0.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24,10.30.0.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 true, not approved"], + "offset_ms": 2061 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 2061}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "advertisedRoutes": ["10.20.1.0/24", "10.30.0.0/24"], + "enabledRoutes": ["10.20.1.0/24"] + }, + "offset_ms": 32068 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": { + "observer": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:53:37.982398217Z"}}], + "rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24", "10.30.0.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:53:37.981273135Z"}}], + "srv": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true + }], "ControlTime": "2026-10-20T12:53:37.98260166Z"}}], + "witness": [{"offset_ms": 0, "response": {"PeersChanged": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "DERP": "127.3.3.40:14", + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true + }], "ControlTime": "2026-10-20T12:53:37.982144044Z"}}] + } + }, { + "name": "RA11", + "at": "2026-10-20T12:54:20.04157697Z", + "result": "observed", + "actions": [{ + "kind": "advertise", + "node": "rtr", + "routes": ["10.20.1.0/24"], + "args": ["set", "--advertise-routes=10.20.1.0/24"], + "exit": 0 + }, { + "kind": "barrier", + "args": ["API: rtr announces 10.30.0.0/24 false, not approved"], + "offset_ms": 2072 + }, {"kind": "wait", "args": ["30s"], "offset_ms": 2072}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:rtr}/routes", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"advertisedRoutes": ["10.20.1.0/24"], "enabledRoutes": ["10.20.1.0/24"]}, + "offset_ms": 32074 + }], + "captures": {"observer": { + "packet_filter_rules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "Hostinfo": {"Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "MachineKey": "mkey:2650d59b7753fef39aec09753d7a45c2e357ab1d1c44e943b0cfb68102e7d66f", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.101.177.2/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::5728:b103/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.101.177.2", "fd7a:115c:a1e0::5728:b103"], "DstPorts": [ + {"IP": "100.101.177.2", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::5728:b103", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "rtr": { + "packet_filter_rules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "MachineKey": "mkey:4d640afeee104e2805a4aca88ccfeb380218da1e1c69f1877dec4b95eb44db14", + "Peers": [{ + "ID": 7878954180964553, + "StableID": "n8G8mRmPX421CNTRL", + "Name": "observer.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:e377aa8484f81093e14c8d6265ff75dcb4a632ae39a3686c122304045765b102", + "KeyExpiry": "2027-04-18T12:43:05Z", + "DiscoKey": "discokey:c145c0570771e2385cd9e8a7abb01d1bd5121235f530769497d767f5bf9f7a5c", + "Addresses": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "AllowedIPs": ["100.101.177.2/32", "fd7a:115c:a1e0::5728:b103/128"], + "Endpoints": [ + "192.0.2.1:53799", + "198.51.100.1:53799", + "198.51.100.2:53799", + "198.51.100.3:53799", + "198.51.100.4:53799", + "198.51.100.5:53799", + "198.51.100.6:53799", + "198.51.100.7:53799" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "observer", "Services": [ + {"Proto": "peerapi4", "Port": 44556}, + {"Proto": "peerapi6", "Port": 44556} + ]}, + "Created": "2026-10-20T12:43:05.722510347Z", + "Cap": 142, + "Online": true, + "ComputedName": "observer", + "ComputedNameWithHost": "observer" + }, { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "srv", "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "Cap": 142, + "Online": true, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.118.137.50/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::7728:8933/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.101.177.2/32", + "100.104.144.97/32", + "fd7a:115c:a1e0::5728:b103/128", + "fd7a:115c:a1e0::9428:9062/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.72.25.49", "fd7a:115c:a1e0::dd28:1932"], "DstPorts": [ + {"IP": "100.118.137.50", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::7728:8933", "Ports": {"First": 0, "Last": 65535}} + ]}, { + "SrcIPs": [ + "100.101.177.2", + "100.104.144.97", + "fd7a:115c:a1e0::5728:b103", + "fd7a:115c:a1e0::9428:9062" + ], + "DstPorts": [{"IP": "10.20.1.0/24", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "2149381438984258": { + "ID": 2149381438984258, + "LoginName": "rtr-renamed.tail78f774.ts.net", + "DisplayName": "rtr-renamed" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "srv": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 8385822766678919, + "StableID": "nYoSzxLxU821CNTRL", + "Name": "srv.tail78f774.ts.net.", + "User": 8385822766678919, + "Key": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "DiscoKey": "discokey:564f7dcf856cd980fbc67fb15054751e6cd36dcdf33ed9ee01d0b7fd617b0314", + "Addresses": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "AllowedIPs": ["100.72.25.49/32", "fd7a:115c:a1e0::dd28:1932/128"], + "Endpoints": [ + "192.0.2.1:46940", + "198.51.100.1:46940", + "198.51.100.2:46940", + "198.51.100.3:46940", + "198.51.100.4:46940", + "198.51.100.5:46940", + "198.51.100.6:46940", + "198.51.100.7:46940" + ], + "Hostinfo": {"Hostname": "srv", "RequestTags": ["tag:server"], "Services": [ + {"Proto": "peerapi4", "Port": 44104}, + {"Proto": "peerapi6", "Port": 44104}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.010924207Z", + "Tags": ["tag:server"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "srv", + "ComputedNameWithHost": "srv" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:f089bc61e8dfac58d201ffc1d7a5632fdaf51b98a22ede8d5495c37cdd481931", + "MachineKey": "mkey:35df4e6688681ee855b772b524fca7b3d61e33350e925c7ab3946c10246c507a", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "8385822766678919": { + "ID": 8385822766678919, + "LoginName": "srv.tail78f774.ts.net", + "DisplayName": "srv" + }} + }, "backend_state": "Running"}, "wit": {"netmap": { + "Cached": false, + "SelfNode": { + "ID": 2153250986399324, + "StableID": "nuhyCdFDpH11CNTRL", + "Name": "wit.tail78f774.ts.net.", + "User": 2153250986399324, + "Key": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "DiscoKey": "discokey:eef0f1cad59bfa6660ec34ff2757bfdcbe88f6e70fb3855f804e0c459e0b4a76", + "Addresses": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "AllowedIPs": ["100.75.170.54/32", "fd7a:115c:a1e0::f228:aa37/128"], + "Endpoints": [ + "192.0.2.1:55832", + "198.51.100.1:55832", + "198.51.100.2:55832", + "198.51.100.3:55832", + "198.51.100.4:55832", + "198.51.100.5:55832", + "198.51.100.6:55832", + "198.51.100.7:55832" + ], + "Hostinfo": {"Hostname": "wit", "RequestTags": ["tag:witness"], "Services": [ + {"Proto": "peerapi4", "Port": 64201}, + {"Proto": "peerapi6", "Port": 64201}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:47:53.665662584Z", + "Tags": ["tag:witness"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "wit", + "ComputedNameWithHost": "wit" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:2ee9dd872f4fa1936f90f4ab292de7cfbe88b5abd54a901bedf0ae23f24baa36", + "MachineKey": "mkey:599fc695c1f80187e5051316054d68e5d6da5e26483d712ea052e13b068bae69", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [], + "PacketFilterRules": null, + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"2153250986399324": { + "ID": 2153250986399324, + "LoginName": "wit.tail78f774.ts.net", + "DisplayName": "wit" + }} + }, "backend_state": "Running"}, "witness": { + "packet_filter_rules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7548417557927527, + "StableID": "nJNeFW8hw121CNTRL", + "Name": "witness.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "KeyExpiry": "2027-04-18T12:42:43Z", + "DiscoKey": "discokey:524b0d3a2b1b2add13d1a624ef2f5cbf17ab0078b67aefcfebe23e37b2d2a720", + "Addresses": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "AllowedIPs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "Endpoints": [ + "192.0.2.1:56184", + "198.51.100.1:56184", + "198.51.100.2:56184", + "198.51.100.3:56184", + "198.51.100.4:56184", + "198.51.100.5:56184", + "198.51.100.6:56184", + "198.51.100.7:56184" + ], + "Hostinfo": {"Hostname": "witness", "Services": [ + {"Proto": "peerapi4", "Port": 39006}, + {"Proto": "peerapi6", "Port": 39006}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-20T12:42:43.720595704Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-admin": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + }, + "ComputedName": "witness", + "ComputedNameWithHost": "witness" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "https://tailscale.com/cap/is-admin", + "https://tailscale.com/cap/is-owner", + "https://tailscale.com/cap/ssh", + "https://tailscale.com/cap/tailnet-lock", + "probe-udp-lifetime", + "ssh-behavior-v1", + "ssh-env-vars", + "store-appc-routes", + "tailnet-display-name" + ], + "NodeKey": "nodekey:72a2ae5bb6b6eebb68cf68828e98420b5463648d35247687b0030bdd94a89061", + "MachineKey": "mkey:f63c9eb09b6de8a0bf0656eaa13b5df072d78d479270d1b80be4cb889f162656", + "Peers": [{ + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "rtr-renamed", "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010} + ]}, + "Created": "2026-10-20T12:47:52.170212667Z", + "Cap": 142, + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "Online": true, + "ComputedName": "rtr-renamed", + "ComputedNameWithHost": "rtr-renamed" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.104.144.97/32", "fd7a:115c:a1e0::9428:9062/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.104.144.97/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9428:9062/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [{"SrcIPs": ["100.104.144.97", "fd7a:115c:a1e0::9428:9062"], "DstPorts": [ + {"IP": "100.104.144.97", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9428:9062", "Ports": {"First": 0, "Last": 65535}} + ]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1260082990019555": { + "ID": 1260082990019555, + "LoginName": "tagged-devices", + "DisplayName": "Tagged Devices" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }}, + "frames": {"rtr": [{"offset_ms": 0, "request": { + "Version": 142, + "Compress": "zstd", + "KeepAlive": true, + "NodeKey": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Hostinfo": { + "IPNVersion": "1.102.5-ERR-BuildInfo", + "BackendLogID": "anonymized", + "OS": "linux", + "OSVersion": "anonymized", + "Container": false, + "Distro": "anonymized", + "DistroVersion": "anonymized", + "DistroCodeName": "anonymized", + "Desktop": false, + "Hostname": "rtr-renamed", + "NoLogsNoSupport": true, + "Machine": "anonymized", + "GoArch": "amd64", + "GoArchVar": "v1", + "GoVersion": "go1.27.1", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ], + "NetInfo": { + "MappingVariesByDestIP": false, + "WorkingIPv6": false, + "OSHasIPv6": true, + "WorkingUDP": true, + "WorkingICMPv4": false, + "UPnP": false, + "PMP": false, + "PCP": false, + "PreferredDERP": 14, + "DERPLatency": { + "1-v4": 0, + "10-v4": 0, + "12-v4": 0, + "13-v4": 0, + "14-v4": 0, + "15-v4": 0, + "16-v4": 0, + "17-v4": 0, + "18-v4": 0, + "19-v4": 0, + "2-v4": 0, + "20-v4": 0, + "21-v4": 0, + "22-v4": 0, + "23-v4": 0, + "24-v4": 0, + "25-v4": 0, + "26-v4": 0, + "27-v4": 0, + "28-v4": 0, + "4-v4": 0, + "6-v4": 0, + "7-v4": 0, + "8-v4": 0, + "9-v4": 0 + } + }, + "Userspace": true, + "UserspaceRouter": true, + "AppConnector": false, + "StateEncrypted": false + }, + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "EndpointTypes": [2, 1, 1, 1, 1, 1, 1, 1], + "OmitPeers": true, + "DebugFlags": ["netstack"] + }}, {"offset_ms": 0, "response": {"Node": { + "ID": 2149381438984258, + "StableID": "nPD2Z8cTnH11CNTRL", + "Name": "rtr-renamed.tail78f774.ts.net.", + "User": 2149381438984258, + "Key": "nodekey:2faa16ddb962c5257f43c84c4c7988ef9e391d111aaa65f7a6f77bb177768932", + "DiscoKey": "discokey:ee745d63fcbb0ba3c49b90227df10662a284803adadefbcf633a019e5ed1a87d", + "Addresses": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128"], + "AllowedIPs": ["100.118.137.50/32", "fd7a:115c:a1e0::7728:8933/128", "10.20.1.0/24"], + "Endpoints": [ + "192.0.2.1:35952", + "198.51.100.1:35952", + "198.51.100.2:35952", + "198.51.100.3:35952", + "198.51.100.4:35952", + "198.51.100.5:35952", + "198.51.100.6:35952", + "198.51.100.7:35952" + ], + "Hostinfo": { + "Hostname": "rtr-renamed", + "RoutableIPs": ["10.20.1.0/24"], + "RequestTags": ["tag:router"], + "Services": [ + {"Proto": "peerapi4", "Port": 49010}, + {"Proto": "peerapi6", "Port": 49010}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ] + }, + "Created": "2026-10-20T12:47:52.170212667Z", + "Tags": ["tag:router"], + "PrimaryRoutes": ["10.20.1.0/24"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": null, + "https://tailscale.com/cap/is-owner": null, + "https://tailscale.com/cap/ssh": null, + "https://tailscale.com/cap/tailnet-lock": null, + "probe-udp-lifetime": null, + "ssh-behavior-v1": null, + "ssh-env-vars": null, + "store-appc-routes": null, + "tailnet-display-name": ["odin@example.com"] + } + }, "ControlTime": "2026-10-20T12:54:20.093871219Z"}}]} + }] +} diff --git a/hscontrol/servertest/via_ha_compat_test.go b/hscontrol/servertest/via_ha_compat_test.go index ee7483319..72500ec65 100644 --- a/hscontrol/servertest/via_ha_compat_test.go +++ b/hscontrol/servertest/via_ha_compat_test.go @@ -675,6 +675,10 @@ type stepReplay struct { // endpoint, as a running tailscaled reports them. paths bool + // deltaUpdates, when set, joins every client [servertest.WithDeltaUpdates], + // so it records removals of peers it never held. + deltaUpdates bool + // readAPI, when set, replays reads too and keeps headscale's answer to // each admin exchange in answers, by action index, instead of failing on // a status that differs from SaaS's. @@ -782,6 +786,10 @@ func (r *stepReplay) apply(t *testing.T, step testcapture.Step) map[string]error opts = append(opts, servertest.WithLoginFlags(controlclient.LoginEphemeral)) } + if r.deltaUpdates { + opts = append(opts, servertest.WithDeltaUpdates()) + } + if r.paths { hi.NetInfo = &tailcfg.NetInfo{PreferredDERP: 1} @@ -884,10 +892,12 @@ func (r *stepReplay) apply(t *testing.T, step testcapture.Step) map[string]error r.srv.App.Change(changes...) } - case "wait": - // SaaS settle time. The test server runs no scheduled tasks - // (expiry, HA probes), so passing time alone changes nothing - // but ephemeral collection, which its consumers shorten. + case "wait", "barrier": + // SaaS settle time, and the probe's wait for SaaS to show the + // step's outcome; consumers hold their checks instead. The test + // server runs no scheduled tasks (expiry, HA probes), so passing + // time alone changes nothing but ephemeral collection, which its + // consumers shorten. default: t.Fatalf("%s: no replay for action %q", step.Name, a.Kind) @@ -947,6 +957,13 @@ func (r *stepReplay) daemon(ctx context.Context, t *testing.T, stepName string, r.hostinfo[a.Node].Hostname = strings.TrimPrefix(args, "set --hostname=") r.sendHostinfo(ctx, t, a.Node) + case a.Kind == "cli" && args == "down": + cl.Disconnect(t) + + case a.Kind == "cli" && args == "up": + // tailscaled registers again on its node key, then polls. + require.NoError(t, cl.ReloginAndPoll(ctx), "%s: up", stepName) + default: t.Fatalf("%s: no replay for %s %q", stepName, a.Kind, a.Args) }