From c4d4e32f126a798b73dd3530a47566940284a430 Mon Sep 17 00:00:00 2001 From: Kristoffer Dalby Date: Sat, 17 Oct 2026 23:03:04 +0000 Subject: [PATCH] servertest, policy/v2: add re-authentication golden data Expired, live, ephemeral and admin-tagged devices logging in again with spent, revoked, valid and other users' keys, by key and by login; tag ownership through tags per policy function. Updates ANT-2026-LYVGXVSW Updates ANT-2026-AWGRB7O1 --- hscontrol/policy/v2/tagowner_compat_test.go | 254 + hscontrol/servertest/lifecycle_compat_test.go | 17 +- hscontrol/servertest/reauth_compat_test.go | 1102 +- .../servertest/testdata/steps/identity.hujson | 6124 ++++ .../testdata/steps/reauth-foreign.hujson | 10649 +++++++ .../testdata/steps/reauth-owner.hujson | 6188 ++++ .../testdata/steps/reauth-user.hujson | 25408 ++++++++++++++++ .../servertest/testdata/steps/reauth.hujson | 6937 +++++ .../testdata/steps/tag-owner-chain.hujson | 4901 +++ hscontrol/servertest/via_ha_compat_test.go | 231 +- 10 files changed, 61757 insertions(+), 54 deletions(-) create mode 100644 hscontrol/policy/v2/tagowner_compat_test.go create mode 100644 hscontrol/servertest/testdata/steps/identity.hujson create mode 100644 hscontrol/servertest/testdata/steps/reauth-foreign.hujson create mode 100644 hscontrol/servertest/testdata/steps/reauth-owner.hujson create mode 100644 hscontrol/servertest/testdata/steps/reauth-user.hujson create mode 100644 hscontrol/servertest/testdata/steps/reauth.hujson create mode 100644 hscontrol/servertest/testdata/steps/tag-owner-chain.hujson diff --git a/hscontrol/policy/v2/tagowner_compat_test.go b/hscontrol/policy/v2/tagowner_compat_test.go new file mode 100644 index 000000000..3b95fcd24 --- /dev/null +++ b/hscontrol/policy/v2/tagowner_compat_test.go @@ -0,0 +1,254 @@ +// Compatibility tests for tags owned by tags: which tags a user, a tagged +// auth key and an OAuth client may apply when tagOwners chain tags, as +// Tailscale SaaS answered joins, relogins and key mints. +// +// Test data source: ../../servertest/testdata/steps/tag-owner-chain.hujson, +// loaded by name; the servertest step captures live there. +// Source format: github.com/juanfont/headscale/hscontrol/types/testcapture + +package v2 + +import ( + "encoding/json" + "fmt" + "net/http" + "path/filepath" + "slices" + "strings" + "testing" + + "github.com/juanfont/headscale/hscontrol/types" + "github.com/juanfont/headscale/hscontrol/types/testcapture" + "github.com/stretchr/testify/require" +) + +// tagOwnerSkipReasons lists checks where headscale differs from SaaS, keyed +// //. A listed check that matches fails, so a fix +// must delete its entry. +var tagOwnerSkipReasons = map[string]string{ + "tag-owner-chain/u-re-relogin/NodeCanHaveTag": tagOwnedThroughTag, + + "tag-owner-chain/t-top-join/TagOwnedByTags": tagReachedTwoHops, + "tag-owner-chain/C-base-mint-top/TagOwnedByTags": tagReachedTwoHops, + "tag-owner-chain/C-base-mint-dtop/TagOwnedByTags": tagReachedTwoHops, + "tag-owner-chain/C-two-mint-subset/TagOwnedByTags": clientTagSubset, +} + +const ( + tagOwnedThroughTag = "TAG_OWNED_THROUGH_TAG: headscale lets a user's node apply a tag whose owner is a tag the user owns; SaaS gives a user only the tags it owns directly" + tagReachedTwoHops = "TAG_REACHED_TWO_HOPS: headscale lets a tagged credential apply a tag any number of ownership steps away; SaaS allows only tags its own tags own directly" + clientTagSubset = "CLIENT_TAG_SUBSET: headscale lets an OAuth client mint a key with a subset of its tags; SaaS needs that subset owned by the client's tags" +) + +// TestTagOwnerChainCompat compares each SaaS verdict on a tag request with +// the policy function headscale asks on that path: +// - a join with a user's untagged key and requested tags: UserCanHaveTag, +// and NodeCanHaveTag for a node the policy does not know yet; +// - a relogin of the user's existing node with requested tags: +// NodeCanHaveTag for that node; +// - a join with a tagged key, and an OAuth client's key mint: +// TagOwnedByTags with the credential's tags. +// +// The user's own mints have no verdict: as a member his API key could not +// mint at all. +func TestTagOwnerChainCompat(t *testing.T) { + t.Parallel() + + const id = "tag-owner-chain" + + c, err := testcapture.Read(filepath.Join("..", "..", "servertest", "testdata", "steps", id+".hujson")) + require.NoError(t, err) + require.NotEmpty(t, c.Steps, "%s: not a step capture", id) + + users := setupGrantsCompatUsers() + nodes := buildGrantsNodesFromCapture(users, c) + + pm, err := NewPolicyManager([]byte(c.Input.FullPolicy), users, nodes.ViewSlice()) + require.NoError(t, err) + + byName := func(name string) *types.User { + i := slices.IndexFunc(users, func(u types.User) bool { return u.Name == name }) + require.GreaterOrEqual(t, i, 0, "no user %s", name) + + return &users[i] + } + + // credentialTags holds the tags of each tagged key and OAuth client, and + // keyUsers the owner of each untagged key, by label. + credentialTags := map[string][]string{} + keyUsers := map[string]*types.User{} + + // One verdict per step and function, read in order: a mint's tags are + // known only once its step has been read. + type row struct { + step, function string + want bool + got func() bool + } + + var rows []row + + for _, step := range c.Steps { + if step.Result != "observed" { + continue + } + + for _, a := range step.Actions { + switch { + case a.Kind == "api" && a.Method == http.MethodPost && a.Path == "/tailnet/-/keys": + var body struct { + Tags []string `json:"tags"` + Capabilities struct { + Devices struct { + Create struct { + Tags []string `json:"tags"` + } `json:"create"` + } `json:"devices"` + } `json:"capabilities"` + } + require.NoError(t, json.Unmarshal(a.Body, &body), "%s: mint body", step.Name) + + tags := body.Capabilities.Devices.Create.Tags + client, byToken := strings.CutPrefix(a.Principal, "token:") + + switch { + case a.Client != "": + credentialTags[a.Client] = body.Tags + case byToken: + owners := credentialTags[client] + + rows = append(rows, row{step.Name, "TagOwnedByTags", a.Status == http.StatusOK, func() bool { + return ownedByTags(pm, tags, owners) + }}) + case len(tags) > 0: + credentialTags[a.Key] = tags + default: + owner := byName("odin") + if name, ok := strings.CutPrefix(a.Principal, "user:"); ok { + owner = byName(name) + } + + keyUsers[a.Key] = owner + } + + case a.Kind == "join" && a.RequestTags != nil: + tags := *a.RequestTags + want := tagsGranted(t, step, a.Node, tags) + + if owners, tagged := credentialTags[a.Key]; tagged { + rows = append(rows, row{step.Name, "TagOwnedByTags", want, func() bool { + return ownedByTags(pm, tags, owners) + }}) + + continue + } + + user := keyUsers[a.Key] + require.NotNil(t, user, "%s: join with unknown key %s", step.Name, a.Key) + + // Outside the policy's node set, as a node that is only now + // registering. + fresh := (&types.Node{ + ID: types.NodeID(len(nodes) + 1), //nolint:gosec + User: user, + UserID: &user.ID, + IPv4: ptrAddr("100.64.255.254"), + }).View() + + rows = append(rows, + row{step.Name, "UserCanHaveTag", want, func() bool { + return allTags(tags, func(tag string) bool { return pm.UserCanHaveTag(user.View(), tag) }) + }}, + row{step.Name, "NodeCanHaveTag", want, func() bool { + return allTags(tags, func(tag string) bool { return pm.NodeCanHaveTag(fresh, tag) }) + }}, + ) + + case a.Kind == "relogin" && a.RequestTags != nil: + tags := *a.RequestTags + want := tagsGranted(t, step, a.Node, tags) + + node := findGrantsNode(nodes, a.Node) + require.NotNil(t, node, "%s: %s is not in the topology", step.Name, a.Node) + + rows = append(rows, row{step.Name, "NodeCanHaveTag", want, func() bool { + return allTags(tags, func(tag string) bool { return pm.NodeCanHaveTag(node.View(), tag) }) + }}) + } + } + } + + evaluated := map[string]bool{} + + for _, step := range c.Steps { + stepRows := slices.DeleteFunc(slices.Clone(rows), func(r row) bool { return r.step != step.Name }) + if len(stepRows) == 0 { + continue + } + + for _, r := range stepRows { + evaluated[id+"/"+r.step+"/"+r.function] = true + } + + t.Run(step.Name, func(t *testing.T) { + t.Parallel() + + for _, r := range stepRows { + compatCheck(t, tagOwnerSkipReasons, id+"/"+r.step+"/"+r.function, func() string { + if got := r.got(); got != r.want { + return fmt.Sprintf("SaaS allowed %t, headscale %t", r.want, got) + } + + return "" + }) + } + }) + } + + for k := range tagOwnerSkipReasons { + if !evaluated[k] { + t.Errorf("skip entry %q names no check", k) + } + } +} + +// tagsGranted reports whether SaaS gave node's device every requested tag: +// the step's device list holds a device on node's machine carrying them. +func tagsGranted(t *testing.T, step testcapture.Step, node string, tags []string) bool { + t.Helper() + + for _, a := range slices.Backward(step.Actions) { + if a.Kind != "api" || a.Method != http.MethodGet || !strings.HasPrefix(a.Path, "/tailnet/-/devices") { + continue + } + + var out struct { + Devices []struct { + MachineKey string `json:"machineKey"` + Tags []string `json:"tags"` + } `json:"devices"` + } + require.NoError(t, json.Unmarshal(a.Response, &out), "%s: device list", step.Name) + + return slices.ContainsFunc(out.Devices, func(d struct { + MachineKey string `json:"machineKey"` + Tags []string `json:"tags"` + }, + ) bool { + return d.MachineKey == "{machine:"+node+"}" && + allTags(tags, func(tag string) bool { return slices.Contains(d.Tags, tag) }) + }) + } + + t.Fatalf("%s: no device list", step.Name) + + return false +} + +func ownedByTags(pm *PolicyManager, tags, ownerTags []string) bool { + return allTags(tags, func(tag string) bool { return pm.TagOwnedByTags(tag, ownerTags) }) +} + +func allTags(tags []string, ok func(string) bool) bool { + return len(tags) > 0 && !slices.ContainsFunc(tags, func(tag string) bool { return !ok(tag) }) +} diff --git a/hscontrol/servertest/lifecycle_compat_test.go b/hscontrol/servertest/lifecycle_compat_test.go index d8de049a2..4f358440b 100644 --- a/hscontrol/servertest/lifecycle_compat_test.go +++ b/hscontrol/servertest/lifecycle_compat_test.go @@ -125,7 +125,7 @@ func runRouteLifecycleCompat(t *testing.T, id, observer string, skips map[string historyStart = max(len(obs.History())-1, 0) } - r.apply(t, step) + require.Empty(t, r.apply(t, step), "%s: every login succeeds", step.Name) prevSaaS := prevObserved prevObserved = step.Captures[observer].Netmap @@ -350,12 +350,15 @@ type deviceRoutes struct { // saasDevice is the part of a SaaS device-list entry the checks read. // Keys and IDs are the capture's labels. type saasDevice struct { - ID string `json:"id"` - NodeKey string `json:"nodeKey"` - MachineKey string `json:"machineKey"` - Addresses []string `json:"addresses"` - Tags []string `json:"tags"` - User string `json:"user"` + ID string `json:"id"` + NodeKey string `json:"nodeKey"` + MachineKey string `json:"machineKey"` + Addresses []string `json:"addresses"` + Tags []string `json:"tags"` + User string `json:"user"` + Expires string `json:"expires"` + KeyExpiryDisabled bool `json:"keyExpiryDisabled"` + IsEphemeral bool `json:"isEphemeral"` } // lastRoutesRead returns the step's last routes read: the device it named diff --git a/hscontrol/servertest/reauth_compat_test.go b/hscontrol/servertest/reauth_compat_test.go index 8d909ecae..4770b1ff9 100644 --- a/hscontrol/servertest/reauth_compat_test.go +++ b/hscontrol/servertest/reauth_compat_test.go @@ -1,16 +1,39 @@ // This file replays re-authentication captures from Tailscale SaaS. // -// Test data source: testdata/steps/owner-routes.hujson, loaded by name; the -// replay and checks are runRouteLifecycleCompat in lifecycle_compat_test.go. +// Test data source: testdata/steps/{owner-routes,reauth,reauth-foreign, +// reauth-owner,identity,reauth-user}.hujson, loaded by name. owner-routes is +// checked by runRouteLifecycleCompat in lifecycle_compat_test.go. The tag +// owner verdicts of tag-owner-chain.hujson are checked in ../policy/v2. // Source format: github.com/juanfont/headscale/hscontrol/types/testcapture package servertest_test -import "testing" +import ( + "cmp" + "encoding/json" + "fmt" + "maps" + "net/http" + "net/netip" + "slices" + "strconv" + "strings" + "testing" + "time" + + "github.com/juanfont/headscale/hscontrol/servertest" + "github.com/juanfont/headscale/hscontrol/types" + "github.com/juanfont/headscale/hscontrol/types/testcapture" + "github.com/stretchr/testify/require" + "golang.org/x/crypto/bcrypt" + "tailscale.com/tailcfg" + "tailscale.com/types/netmap" + "tailscale.com/wgengine/filter" +) // reauthSkipReasons lists checks where headscale differs from SaaS, keyed -// //. A listed check that matches fails, so a fix must -// delete its entry. +// /[/]/. A listed check that matches fails, so a +// fix must delete its entry. var reauthSkipReasons = map[string]string{ "owner-routes/r-expired-retag/expire/served": expiredRouterUnserved, "owner-routes/r-expired-retag/expire/online": expiredPeerOffline, @@ -24,6 +47,77 @@ var reauthSkipReasons = map[string]string{ "owner-routes/r-retag/withdraw/enabled": withdrawKeepsAutoApproval, "owner-routes/r-expired-retag/withdraw/enabled": withdrawKeepsAutoApproval, "owner-routes/u-convert/withdraw/enabled": withdrawKeepsAutoApproval, + + "reauth/t-spent-relogin/t-spent/outcome": expiredKeyNotRotated, + "reauth/t-revoked-relogin/t-revoked/outcome": expiredKeyNotRotated, + "reauth/t-valid-relogin/t-valid/outcome": expiredKeyNotRotated, + "reauth/t-valid-relogin/t-valid/node-key": expiredKeyAccepted, + "reauth-user/a4-expired-spent-key/u-spent/outcome": expiredKeyNotRotated, + "reauth-user/a5-expired-valid-key/u-valid/outcome": expiredKeyNotRotated, + "reauth-user/a5-expired-valid-key/u-valid/node-key": expiredKeyAccepted, + + "reauth/t-spent-relogin/t-spent/expiry": expiredTaggedRevived, + "reauth/t-spent-relogin/t-spent/peer-obs": expiredTaggedRevived, + "reauth/t-spent-relogin-force/t-spent/expiry": expiredTaggedRevived, + "reauth/t-spent-relogin-force/t-spent/peer-obs": expiredTaggedRevived, + "reauth/t-revoked-relogin/t-revoked/expiry": expiredTaggedRevived, + "reauth/t-revoked-relogin/t-revoked/peer-obs": expiredTaggedRevived, + + "reauth-owner/u-renew-relogin/u-renew/expiry": sameKeyRenewsExpiry, + "reauth-user/a1-spent-key/u-spent/expiry": sameKeyRenewsExpiry, + "reauth-user/a2-valid-key/u-valid/expiry": sameKeyRenewsExpiry, + + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/devices": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/owner": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/node-key": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/expiry": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/ephemeral": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/peer-obs": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/obs/filter": otherUserKeyReauthsTagged, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/login-devices": loginTakesTaggedDevice, + "reauth-foreign/t-reauth-foreign-relogin/t-reauth-foreign/login-owner": loginTakesTaggedDevice, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/devices": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/owner": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/node-key": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/expiry": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/ephemeral": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/peer-obs": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/obs/filter": otherUserKeyReauthsTagged, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/login-devices": loginTakesTaggedDevice, + "reauth-foreign/t-exp-foreign-relogin/t-exp-foreign/login-owner": loginTakesTaggedDevice, + + "reauth-foreign/t-eph-spent-foreign-key/t-eph/ephemeral": spentKeyRebindsNode, + "reauth-foreign/t-eph-logout/t-eph/devices": spentKeyRebindsNode, + "reauth-foreign/t-eph-logout/t-eph/owner": spentKeyRebindsNode, + "reauth-foreign/t-eph-logout/t-eph/expiry": spentKeyRebindsNode, + "reauth-foreign/t-eph-logout/t-eph/ephemeral": spentKeyRebindsNode, + "reauth-foreign/t-eph-logout/t-eph/peer-obs": spentKeyRebindsNode, + + "reauth-foreign/t-logout-logout/t-logout/expiry": taggedLogoutNotExpired, + "reauth-foreign/t-logout-logout/t-logout/peer-obs": taggedLogoutNotExpired, + "reauth-foreign/t-logout-relogin/t-logout/expiry": taggedLogoutNotExpired, + "reauth-foreign/t-logout-relogin/t-logout/peer-obs": taggedLogoutNotExpired, + + "reauth-foreign/t-wake-foreign-key-tags/t-wake/outcome": wakeWithTagsRefused, + "identity/w-tagreq-relogin-tags/w-tagreq/owner": keyLoginTagsRefused, + "identity/w-tagreq-relogin-tags/w-tagreq/outcome": keyLoginTagsRefused, + "identity/w-tagreq-relogin-tags/w-tagreq/node-key": keyLoginTagsRefused, + "identity/w-tagreq-relogin-tags/w-tagreq/expiry": keyLoginTagsRefused, + "identity/w-tagreq-relogin-tags/obs/filter": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/devices": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/owner": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/outcome": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/expiry": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/ephemeral": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/peer-obs": keyLoginTagsRefused, + "identity/w-tagreq-new-join/w-tagreq-new/peer-key-obs": keyLoginTagsRefused, + + "reauth-owner/u-tagged-reauth-relogin/u-tagged-reauth/owner": adminTagsKeptOnUserLogin, + "reauth-owner/u-tagged-reauth-relogin/u-tagged-reauth/expiry": adminTagsKeptOnUserLogin, + "reauth-owner/u-tagged-reauth-relogin/obs/filter": adminTagsKeptOnUserLogin, + + "reauth/late-pak-spent-key/late-pak/text": refusalText, + "reauth/late-pak-spent-key/late-pak/legacy-text": refusalText, } const ( @@ -32,10 +126,52 @@ const ( withdrawKeepsAutoApproval = "WITHDRAW_KEEPS_AUTO_APPROVAL: headscale keeps an auto-approved route once it is withdrawn; SaaS drops it and keeps only admin-set approvals" ) -// TestReauthCompat replays owner changes on routers with approved routes: -// re-auth with another tag's key, the same after expiry and key deletion, -// same-tag rotation, admin retag, a user router converted by a tagged key -// and same-user re-auth, each followed by a withdraw and re-advertise. +const ( + expiredKeyNotRotated = "EXPIRED_KEY_NOT_ROTATED: headscale answers an expired node's key login without asking for a new node key; SaaS answers NodeKeyExpired first, so the client rotates it" + expiredTaggedRevived = "EXPIRED_TAGGED_REVIVED: headscale lets an expired tagged node log in again with its spent or revoked key and lifts its expiry; SaaS refuses the key and the node stays expired" + sameKeyRenewsExpiry = "SAME_KEY_LOGIN_RENEWS_EXPIRY: headscale renews a user node's expiry on a key login that keeps its node key; SaaS renews it only with a new node key" + otherUserKeyReauthsTagged = "OTHER_USER_KEY_REAUTHS_TAGGED: headscale re-registers a tagged device in place when another user's key logs in anew on its machine; SaaS keeps the tagged device and adds one for that user" + loginTakesTaggedDevice = "LOGIN_TAKES_TAGGED_DEVICE: headscale's interactive login gives another user the tagged device on the machine; SaaS's key login keeps it and adds a device for that user" + spentKeyRebindsNode = "SPENT_KEY_REBINDS_NODE: headscale binds a live node to the spent key it logs in with, so an ephemeral node stops being ephemeral and survives logout; SaaS keeps the node as it was" + taggedLogoutNotExpired = "TAGGED_LOGOUT_NOT_EXPIRED: headscale leaves a tagged node unexpired when it logs out; SaaS expires it" + wakeWithTagsRefused = "WAKE_WITH_TAGS_REFUSED: headscale refuses a key login that requests tags the key does not carry even when the node keeps its node key and tags; SaaS accepts it and changes nothing" + keyLoginTagsRefused = "KEY_LOGIN_TAGS_REFUSED: headscale refuses a user's key login that requests tags the user owns; SaaS tags the device, converting it in place or creating it tagged" + adminTagsKeptOnUserLogin = "ADMIN_TAGS_KEPT_ON_USER_LOGIN: headscale keeps an admin-tagged device tagged when its user's key logs in anew; SaaS turns it back into that user's device" + refusalText = "REFUSAL_TEXT: SaaS refuses a key by naming its ID; headscale says why the key is refused" +) + +// reauthNotCompared lists, by key prefix, checks left out: SaaS's answer +// there is in doubt, so it is no reference. +var reauthNotCompared = []string{ + "reauth-user/a8-convert/key:A-Kp", + "reauth-user/a8-convert/u-convert/expiry", + "reauth-user/a9-used-tagged-key/key:A-Kp", + "reauth-user/a9-used-tagged-key/u-loser-same/owner", + "reauth-user/a9-used-tagged-key/u-loser-same/outcome", + "reauth-user/a9-used-tagged-key/obs/filter", + "reauth-user/a9-used-tagged-key/t-server/filter", + "reauth-user/a10-used-tagged-key-force/u-loser-force/owner", + "reauth-user/a10-used-tagged-key-force/u-loser-force/outcome", + "reauth-user/a10-used-tagged-key-force/u-loser-force/node-key", + "reauth-user/a10-used-tagged-key-force/u-loser-force/expiry", + "reauth-user/a10-used-tagged-key-force/obs/filter", + "reauth-user/a10-used-tagged-key-force/t-server/filter", +} + +// reauthCompatTests are the captures [runReauthCompat] replays. +var reauthCompatTests = []string{"reauth", "reauth-foreign", "reauth-owner", "identity", "reauth-user"} + +// reauthObservers stay up through a capture: their view of each cell and +// their own filters are checked. +var reauthObservers = []string{"obs", "t-server"} + +// TestReauthCompat replays re-authentication against SaaS. owner-routes: +// owner changes on routers with approved routes. The others: expired and +// live devices logging in again with spent, revoked, valid and other users' +// keys, logout, ephemeral devices, admin tagging, conversion either way, a +// second profile, and one single-use tagged key presented by several +// devices. via=login replays a user's key logins as interactive logins that +// user approves. func TestReauthCompat(t *testing.T) { t.Parallel() @@ -44,4 +180,952 @@ func TestReauthCompat(t *testing.T) { runRouteLifecycleCompat(t, "owner-routes", "obs", reauthSkipReasons) }) + + for _, id := range reauthCompatTests { + for _, via := range []string{"key", "login"} { + t.Run(id+"/via="+via, func(t *testing.T) { + t.Parallel() + + runReauthCompat(t, id, via == "login") + }) + } + } +} + +// runReauthCompat replays capture id step by step and checks each cell the +// step acted on against SaaS: +// - outcome: the login's register answers, see [registerOutcome]; +// - devices, owner, node-key, expiry, ephemeral: every device on the +// cell's machine, in join order; +// - peer-, peer-key, disco: how the observers see them; +// +// and, per step, each observer's filter and each key SaaS read back. With +// viaLogin, a login SaaS accepted from a user's key is replayed as an +// interactive login that user approves, and only its devices and owner, and +// its expiry when SaaS ended tagged, are checked. +func runReauthCompat(t *testing.T, id string, viaLogin bool) { + t.Helper() + + c := readStepCapture(t, id) + + days := c.Input.Tailnet.Settings.DevicesKeyDurationDays + require.NotNil(t, days, "%s: no key duration", id) + + run := &reauthRun{ + c: c, + r: newStepReplay(t, c, servertest.WithNodeExpiry(time.Duration(*days)*24*time.Hour)), + viaLogin: viaLogin, + loggedOut: map[string]bool{}, + saasFirst: map[string]deviceView{}, + hsFirst: map[string]deviceView{}, + saasPrev: map[string]deviceView{}, + evaluated: map[string]bool{}, + } + + if viaLogin { + run.r.interactive = func(step testcapture.Step, a testcapture.Action) bool { + return loginReplayable(step, a, run.r.keyTags, run.loggedOut[a.Node]) + } + } + + for _, step := range c.Steps { + require.Contains(t, []string{"observed", "expected-refusal"}, step.Result, + "%s: the replay follows every step", step.Name) + + run.step(t, step) + } + + for k := range reauthSkipReasons { + check := k[strings.LastIndex(k, "/")+1:] + if !strings.HasPrefix(k, id+"/") || refusalCheck(check) || + strings.HasPrefix(check, "login-") != viaLogin { + continue + } + + if !run.evaluated[k] { + t.Errorf("skip entry %q names no check", k) + } + } +} + +// reauthRun is one replay of a re-authentication capture and what earlier +// steps showed on each side. +type reauthRun struct { + c *testcapture.Capture + r *stepReplay + viaLogin bool + + loggedOut map[string]bool + + // saasFirst and hsFirst hold each cell's first device; saasPrev each + // SaaS device as last listed. + saasFirst, hsFirst map[string]deviceView + saasPrev map[string]deviceView + + prevCaptures map[string]testcapture.Node + evaluated map[string]bool +} + +// before is headscale's state for a step's cells just before it runs. +type before struct { + attempts map[string]int + views map[string]deviceView + disco map[string]string +} + +func (run *reauthRun) step(t *testing.T, step testcapture.Step) { + t.Helper() + + r := run.r + cells, logins := stepCells(step) + + prev := before{attempts: map[string]int{}, views: map[string]deviceView{}, disco: map[string]string{}} + + for _, cell := range cells { + if cl, ok := r.clients[cell]; ok { + prev.attempts[cell] = len(cl.RegisterAttempts()) + } + + for _, v := range r.hsViews(cell) { + prev.views[v.id] = v + + for _, obs := range reauthObservers { + if cl, ok := r.clients[obs]; ok { + prev.disco[obs+"/"+v.id] = peerDisco(cl.Netmap(), v.nodeID) + } + } + } + } + + r.apply(t, step) + + // After apply: a step's own mints decide its keys' tags. + replayed := map[string]bool{} + for node, a := range logins { + replayed[node] = loginReplayable(step, a, r.keyTags, run.loggedOut[node]) + } + + for _, a := range step.Actions { + switch a.Kind { + case "cli": + run.loggedOut[a.Node] = strings.Join(a.Args, " ") == "logout" + case "join", "relogin", "login", "switch_profile": + run.loggedOut[a.Node] = false + } + } + + defer func() { run.prevCaptures = step.Captures }() + + devices, readAt, ok := stepDeviceRead(step) + if !ok { + return + } + + var checks []stepCheck + + for _, cell := range cells { + if run.viaLogin && !replayed[cell] { + continue + } + + login, isLogin := logins[cell] + checks = append(checks, run.cellChecks(step, cell, saasDeviceViews(run.c, devices, cell, readAt), prev, login, isLogin)...) + } + + if !run.viaLogin { + checks = append(checks, r.keyChecks(step)...) + checks = append(checks, r.filterChecks(t, step, devices)...) + } + + prefix := run.c.TestID + "/" + step.Name + "/" + checks = slices.DeleteFunc(checks, func(ch stepCheck) bool { + return notCompared(reauthNotCompared, prefix+ch.name) + }) + + // Marked here, so a run filtered to other steps does not call these + // entries stale. + for _, ch := range checks { + run.evaluated[prefix+ch.name] = true + } + + if len(checks) > 0 { + t.Run(step.Name, func(t *testing.T) { + holdChecks(t, reauthSkipReasons, prefix, checks, run.evaluated) + }) + } + + for _, cell := range cells { + if want := saasDeviceViews(run.c, devices, cell, readAt); len(want) > 0 { + if _, ok := run.saasFirst[cell]; !ok { + run.saasFirst[cell] = want[0] + } + } + + if got := r.hsViews(cell); len(got) > 0 { + if _, ok := run.hsFirst[cell]; !ok { + run.hsFirst[cell] = got[0] + } + } + } + + for _, d := range devices { + run.saasPrev[d.ID] = saasDeviceView(run.c, d, readAt) + } +} + +// cellChecks builds one cell's checks for a step; want is SaaS's view of +// the cell's devices. +func (run *reauthRun) cellChecks( + step testcapture.Step, + cell string, + want []deviceView, + prev before, + login testcapture.Action, + isLogin bool, +) []stepCheck { + r := run.r + got := func() []deviceView { return r.hsViews(cell) } + + var checks []stepCheck + + check := func(name, want string, got func() string) { + if run.viaLogin { + name = "login-" + name + } + + checks = append(checks, stepCheck{cell + "/" + name, want, got}) + } + + first, ok := run.saasFirst[cell] + if !ok && len(want) > 0 { + first = want[0] + } + + check("devices", renderDevices(want, first), func() string { + views := got() + + f, ok := run.hsFirst[cell] + if !ok && len(views) > 0 { + f = views[0] + } + + return renderDevices(views, f) + }) + check("owner", renderOwners(want), func() string { return renderOwners(got()) }) + + if run.viaLogin { + if len(want) > 0 && !slices.ContainsFunc(want, func(v deviceView) bool { return !v.tagged }) { + check("expiry", renderExpiry(want, run.saasPrev), func() string { return renderExpiry(got(), prev.views) }) + } + + return checks + } + + if isLogin { + check("outcome", registerOutcome(step.Register[login.Node]), func() string { + return registerOutcome(r.clients[cell].RegisterAttempts()[prev.attempts[cell]:]) + }) + } + + if slices.ContainsFunc(want, func(v deviceView) bool { _, ok := run.saasPrev[v.id]; return ok }) { + check("node-key", renderNodeKeys(want, run.saasPrev), func() string { return renderNodeKeys(got(), prev.views) }) + } + + check("expiry", renderExpiry(want, run.saasPrev), func() string { return renderExpiry(got(), prev.views) }) + check("ephemeral", renderEphemeral(want), func() string { return renderEphemeral(got()) }) + + self := step.Captures[cell] + restarted := slices.ContainsFunc(step.Actions, func(a testcapture.Action) bool { + return a.Kind == "restart" && a.Node == cell + }) + + for _, obs := range reauthObservers { + view, captured := step.Captures[obs] + if !captured || obs == cell { + continue + } + + check("peer-"+obs, renderPeers(want, view.Netmap), func() string { + return renderPeers(got(), r.clients[obs].Netmap()) + }) + + if self.Netmap == nil { + continue + } + + if self.BackendState == "Running" { + check("peer-key-"+obs, peerKeyState(view.Netmap, self.Netmap), func() string { + return peerKeyState(r.clients[obs].Netmap(), r.clients[cell].Netmap()) + }) + } + + if restarted { + selfID := self.Netmap.SelfNode.ID() + saas := discoChange(peerDisco(run.prevCaptures[obs].Netmap, selfID), peerDisco(view.Netmap, selfID)) + + check("disco-"+obs, saas, func() string { + views := got() + if len(views) == 0 { + return "no device" + } + + v := views[len(views)-1] + + return discoChange(prev.disco[obs+"/"+v.id], peerDisco(r.clients[obs].Netmap(), v.nodeID)) + }) + } + } + + return checks +} + +// stepCells returns the nodes a step acts on, in order, and the last login +// each made. A step that names none, such as a key deletion, acts on every +// captured node that is not an observer. +func stepCells(step testcapture.Step) ([]string, map[string]testcapture.Action) { + var cells []string + + logins := map[string]testcapture.Action{} + + add := func(node string) { + if !slices.Contains(cells, node) { + cells = append(cells, node) + } + } + + for _, a := range step.Actions { + switch a.Kind { + case "join", "relogin", "login", "switch_profile": + add(a.Node) + logins[a.Node] = a + case "restart", "cli", "logout": + add(a.Node) + case "api": + if strings.HasPrefix(a.Path, "/device/") { + alias, _, _ := strings.Cut(strings.TrimPrefix(a.Path, "/device/{device:"), "}") + add(alias) + } + } + } + + if len(cells) == 0 { + for _, node := range slices.Sorted(maps.Keys(step.Captures)) { + if !slices.Contains(reauthObservers, node) { + add(node) + } + } + } + + return cells, logins +} + +// loginReplayable reports whether via=login replays a as an interactive +// login: a join, a new profile, or a relogin that starts a new login (forced, +// or after a logout), made with a user's untagged key and accepted by SaaS. +// A key's refusal says nothing about who may approve a login. +func loginReplayable(step testcapture.Step, a testcapture.Action, keyTags map[string][]string, loggedOut bool) bool { + switch a.Kind { + case "join", "login": + case "relogin": + if !a.Force && !loggedOut { + return false + } + default: + return false + } + + tags, minted := keyTags[a.Key] + + return minted && len(tags) == 0 && step.Result == "observed" && + strings.HasSuffix(registerOutcome(step.Register[a.Node]), "accepted") +} + +// registerOutcome reads a login's register exchanges up to the answer that +// ends it: "node-key-expired" for each answer asking for a new node key, +// then "accepted", "refused" or "auth-url". Errors of a login the client +// cancelled to start another are skipped. +func registerOutcome(attempts []testcapture.RegisterAttempt) string { + var out []string + + for _, a := range attempts { + switch { + case strings.Contains(a.Err, "context canceled"): + case a.Err != "": + return strings.Join(append(out, "refused"), ", ") + case a.AuthURL != "": + return strings.Join(append(out, "auth-url"), ", ") + case a.NodeKeyExpired != nil && *a.NodeKeyExpired: + out = append(out, "node-key-expired") + case a.MachineAuthorized != nil && *a.MachineAuthorized: + return strings.Join(append(out, "accepted"), ", ") + } + } + + return strings.Join(append(out, "unanswered"), ", ") +} + +// stepDeviceRead returns the step's last device list and when SaaS read it. +func stepDeviceRead(step testcapture.Step) ([]saasDevice, time.Time, bool) { + for _, a := range slices.Backward(step.Actions) { + if a.Kind != "api" || a.Method != http.MethodGet || !strings.HasPrefix(a.Path, "/tailnet/-/devices") { + continue + } + + var out struct { + Devices []saasDevice `json:"devices"` + } + + if json.Unmarshal(a.Response, &out) != nil { + return nil, time.Time{}, false + } + + return out.Devices, step.At.Add(time.Duration(a.OffsetMS) * time.Millisecond), true + } + + return nil, time.Time{}, false +} + +// deviceView is one device as the checks read it, from a SaaS device list +// or headscale's NodeStore. +type deviceView struct { + id string // SaaS label or headscale node ID + nodeID tailcfg.NodeID + tagged bool + owner string + expiry string // "disabled", "past" or "future" + expires string // the raw expiry, to tell a renewal from no change + ephemeral bool + nodeKey string + addrs string + ips []netip.Addr +} + +// saasDeviceViews returns the devices on cell's machine in join order: the +// first device, then "#2" onward. +func saasDeviceViews(c *testcapture.Capture, devices []saasDevice, cell string, at time.Time) []deviceView { + var out []deviceView + + for _, d := range devices { + if d.MachineKey == "{machine:"+cell+"}" { + out = append(out, saasDeviceView(c, d, at)) + } + } + + slices.SortFunc(out, func(a, b deviceView) int { + return cmp.Or(cmp.Compare(len(a.id), len(b.id)), strings.Compare(a.id, b.id)) + }) + + return out +} + +func saasDeviceView(c *testcapture.Capture, d saasDevice, at time.Time) deviceView { + expiry := "disabled" + + exp, err := time.Parse(time.RFC3339, d.Expires) + if err == nil && !d.KeyExpiryDisabled { + expiry = "future" + if exp.Before(at) { + expiry = "past" + } + } + + return deviceView{ + id: d.ID, + nodeID: c.NodeIDs[deviceLabelAlias(d.ID)], + tagged: len(d.Tags) > 0, + owner: saasOwner(d), + expiry: expiry, + expires: d.Expires, + ephemeral: d.IsEphemeral, + nodeKey: d.NodeKey, + addrs: sortedStrings(d.Addresses), + } +} + +// deviceLabelAlias turns "{device:x#2}" into "x#2". +func deviceLabelAlias(label string) string { + return strings.TrimSuffix(strings.TrimPrefix(label, "{device:"), "}") +} + +// hsViews returns the nodes on alias's machine in join order. +func (r *stepReplay) hsViews(alias string) []deviceView { + nodes := r.machineNodes(alias) + slices.SortFunc(nodes, func(a, b types.NodeView) int { return cmp.Compare(a.ID(), b.ID()) }) + + out := make([]deviceView, 0, len(nodes)) + + for _, nv := range nodes { + v := deviceView{ + id: nv.StringID(), + nodeID: nv.ID().NodeID(), + tagged: nv.IsTagged(), + expiry: "disabled", + ephemeral: nv.IsEphemeral(), + nodeKey: nv.NodeKey().String(), + addrs: sortedStrings(nv.IPsAsString()), + ips: nv.IPs(), + } + + if v.tagged { + v.owner = "tags " + sortedStrings(nv.Tags().AsSlice()) + } else { + v.owner = "user " + nv.User().Name() + } + + if exp := nv.Expiry(); exp.Valid() && !exp.Get().IsZero() { + v.expires = exp.Get().String() + + v.expiry = "future" + if exp.Get().Before(time.Now()) { + v.expiry = "past" + } + } + + out = append(out, v) + } + + return out +} + +func renderDevices(views []deviceView, first deviceView) string { + kept := slices.ContainsFunc(views, func(v deviceView) bool { + return v.id == first.id && v.addrs == first.addrs + }) + + return fmt.Sprintf("devices %d, first kept %t", len(views), kept) +} + +func renderOwners(views []deviceView) string { + return renderEach(views, func(v deviceView) string { return v.owner }) +} + +func renderNodeKeys(views []deviceView, prev map[string]deviceView) string { + return renderEach(views, func(v deviceView) string { + p, ok := prev[v.id] + + switch { + case !ok: + return "new" + case p.nodeKey == v.nodeKey: + return "kept" + default: + return "rotated" + } + }) +} + +// renderExpiry gives each device's expiry class; a future expiry also says +// whether the step moved it. +func renderExpiry(views []deviceView, prev map[string]deviceView) string { + return renderEach(views, func(v deviceView) string { + p, ok := prev[v.id] + if v.expiry != "future" || !ok || p.expiry != "future" { + return v.expiry + } + + if p.expires == v.expires { + return "future, unchanged" + } + + return "future, renewed" + }) +} + +func renderEphemeral(views []deviceView) string { + return renderEach(views, func(v deviceView) string { return strconv.FormatBool(v.ephemeral) }) +} + +// renderPeers gives how an observer sees each device: absent, expired or +// valid. +func renderPeers(views []deviceView, nm *netmap.NetworkMap) string { + return renderEach(views, func(v deviceView) string { + p, missing := peerByID(nm, v.nodeID) + + switch { + case missing != "": + return missing + case p.Expired(): + return "expired" + default: + return "valid" + } + }) +} + +func renderEach(views []deviceView, f func(deviceView) string) string { + out := make([]string, len(views)) + for i, v := range views { + out[i] = f(v) + } + + return strings.Join(out, "; ") +} + +// peerKeyState reports whether the observer's peer entry for a node holds +// the node key the node itself uses. +func peerKeyState(observer, self *netmap.NetworkMap) string { + if self == nil || !self.SelfNode.Valid() { + return "no self" + } + + p, missing := peerByID(observer, self.SelfNode.ID()) + if missing != "" { + return missing + } + + if p.Key() == self.SelfNode.Key() { + return "current" + } + + return "stale" +} + +func peerDisco(nm *netmap.NetworkMap, id tailcfg.NodeID) string { + p, missing := peerByID(nm, id) + if missing != "" { + return missing + } + + return p.DiscoKey().String() +} + +func discoChange(before, after string) string { + switch { + case strings.HasPrefix(after, "discokey:") && before == after: + return "kept" + case strings.HasPrefix(after, "discokey:") && strings.HasPrefix(before, "discokey:"): + return "rotated" + default: + return before + " -> " + after + } +} + +// keyChecks compares each key SaaS read back in the step: valid, invalid +// (spent, revoked or expired) or absent. +func (r *stepReplay) keyChecks(step testcapture.Step) []stepCheck { + var checks []stepCheck + + for _, a := range step.Actions { + label, ok := strings.CutPrefix(a.Path, "/tailnet/-/keys/{key:") + if a.Kind != "api" || a.Method != http.MethodGet || !ok { + continue + } + + label = strings.TrimSuffix(label, "}") + + want := "absent" + + if a.Status == http.StatusOK { + var k struct { + Invalid bool `json:"invalid"` + } + + want = "valid" + if json.Unmarshal(a.Response, &k) == nil && k.Invalid { + want = "invalid" + } + } + + checks = append(checks, stepCheck{"key:" + label, want, func() string { + pak, err := r.srv.State().GetPreAuthKeyByID(r.keyIDs[label]) + + switch { + case err != nil: + return "absent" + case pak.Validate() != nil: + return "invalid" + default: + return "valid" + } + }}) + } + + return checks +} + +// filterChecks compares each captured observer's packet filter, as source +// devices and ports per rule. The observer is every rule's destination, so +// destinations are left out. +func (r *stepReplay) filterChecks(t *testing.T, step testcapture.Step, devices []saasDevice) []stepCheck { + t.Helper() + + saasNames := map[netip.Addr]string{} + + for _, d := range devices { + for _, s := range d.Addresses { + addr, err := netip.ParseAddr(s) + if err == nil { + saasNames[addr] = deviceLabelAlias(d.ID) + } + } + } + + var checks []stepCheck + + for _, obs := range reauthObservers { + view, ok := step.Captures[obs] + if !ok { + continue + } + + var want []string + + for _, rule := range view.PacketFilterRules { + var srcs []netip.Prefix + + for _, s := range rule.SrcIPs { + pfxs, err := parseDstPrefixes(s) + require.NoError(t, err, "%s: %s filter source", step.Name, obs) + + srcs = append(srcs, pfxs...) + } + + for _, dp := range rule.DstPorts { + want = append(want, filterLine(srcs, saasNames, dp.Ports.First, dp.Ports.Last)) + } + } + + checks = append(checks, stepCheck{obs + "/filter", filterLines(want), func() string { + nm := r.clients[obs].Netmap() + if nm == nil { + return "no netmap" + } + + names := r.addrNames() + + var got []string + + for _, m := range nm.PacketFilter { + got = append(got, matchLines(m, names)...) + } + + return filterLines(got) + }}) + } + + return checks +} + +func matchLines(m filter.Match, names map[netip.Addr]string) []string { + out := make([]string, 0, len(m.Dsts)) + for _, d := range m.Dsts { + out = append(out, filterLine(m.Srcs, names, d.Ports.First, d.Ports.Last)) + } + + return out +} + +// filterLine renders one rule as "sources => first-last". +func filterLine(srcs []netip.Prefix, names map[netip.Addr]string, first, last uint16) string { + set := map[string]bool{} + + // Headscale merges adjacent addresses into prefixes, so a Tailscale + // prefix stands for every device inside it. + for _, p := range srcs { + matched := false + + if p.Bits() == 0 { + set["*"], matched = true, true + } else if prefixInTailscaleRange(p) { + for addr, name := range names { + if p.Contains(addr) { + set[name], matched = true, true + } + } + } + + if !matched { + set[p.String()] = true + } + } + + return fmt.Sprintf("%s => %d-%d", strings.Join(slices.Sorted(maps.Keys(set)), ","), first, last) +} + +func filterLines(lines []string) string { + slices.Sort(lines) + + return strings.Join(slices.Compact(lines), "\n") +} + +// addrNames names each headscale node by its machine's alias, with "#2" +// onward for later nodes on one machine, as SaaS labels devices. +func (r *stepReplay) addrNames() map[netip.Addr]string { + out := map[netip.Addr]string{} + + for alias := range r.clients { + for i, v := range r.hsViews(alias) { + name := alias + if i > 0 { + name = fmt.Sprintf("%s#%d", alias, i+1) + } + + for _, addr := range v.ips { + out[addr] = name + } + } + } + + return out +} + +// authKeyRefusalRows are fresh machines logging in with a key whose state +// the capture shows: spent, and a valid control row. +var authKeyRefusalRows = []struct { + id, step, node string +}{ + {"reauth", "late-pak-spent-key", "late-pak"}, + {"reauth", "t-valid-join", "t-valid"}, +} + +// refusalCheck reports whether a check name belongs to +// [TestAuthKeyRefusalCompat]. +func refusalCheck(check string) bool { + switch strings.TrimPrefix(check, "legacy-") { + case "refused", "nodes", "text": + return true + } + + return false +} + +// TestAuthKeyRefusalCompat replays a fresh machine's login with a key in +// the state SaaS shows, and checks that it is refused or accepted as on +// SaaS and that a refusal leaves no node. Each row runs again with the key +// stored under a legacy hash, the path that verifies it on a slower route. +func TestAuthKeyRefusalCompat(t *testing.T) { + t.Parallel() + + for _, row := range authKeyRefusalRows { + for _, legacy := range []bool{false, true} { + name := row.id + "/" + row.step + if legacy { + name += "/legacy_hash" + } + + t.Run(name, func(t *testing.T) { + t.Parallel() + + runAuthKeyRefusalCompat(t, row.id, row.step, row.node, legacy) + }) + } + } + + t.Run("entries", func(t *testing.T) { + for k := range reauthSkipReasons { + check := k[strings.LastIndex(k, "/")+1:] + if !refusalCheck(check) { + continue + } + + named := slices.ContainsFunc(authKeyRefusalRows, func(row struct{ id, step, node string }) bool { + return strings.HasPrefix(k, row.id+"/"+row.step+"/"+row.node+"/") + }) + if !named { + t.Errorf("skip entry %q names no check", k) + } + } + }) +} + +func runAuthKeyRefusalCompat(t *testing.T, id, stepName, node string, legacy bool) { + t.Helper() + + c := readStepCapture(t, id) + r := newStepReplay(t, c) + + i := slices.IndexFunc(c.Steps, func(s testcapture.Step) bool { return s.Name == stepName }) + require.GreaterOrEqual(t, i, 0, "%s: no step %s", id, stepName) + + for _, step := range c.Steps[:i] { + r.apply(t, step) + } + + step := c.Steps[i] + + j := slices.IndexFunc(step.Actions, func(a testcapture.Action) bool { return a.Kind == "join" && a.Node == node }) + require.GreaterOrEqual(t, j, 0, "%s: %s does not join", stepName, node) + + // Keys minted in the step exist only once their action ran. + var refused map[string]error + + if legacy { + label := step.Actions[j].Key + head, tail := step, step + head.Actions, tail.Actions = step.Actions[:j], step.Actions[j:] + r.apply(t, head) + r.storeLegacyHash(t, label) + refused = r.apply(t, tail) + + // Verifying a legacy hash upgrades it, so the login took that path. + var hash string + require.NoError(t, r.srv.State().DB().DB.Raw( + "SELECT hash FROM credentials WHERE id = ?", r.keyIDs[label]).Scan(&hash).Error) + require.True(t, strings.HasPrefix(hash, "$sha256$"), "the login verified the legacy hash") + } else { + refused = r.apply(t, step) + } + + devices, _, ok := stepDeviceRead(step) + require.True(t, ok, "%s: no device list", stepName) + + saas := registerOutcome(step.Register[node]) + saasErr := "" + + for _, a := range step.Register[node] { + if a.Err != "" && !strings.Contains(a.Err, "context canceled") { + saasErr = a.Err + + break + } + } + + prefix := "" + if legacy { + prefix = "legacy-" + } + + checks := make([]stepCheck, 0, 3) + checks = append(checks, + stepCheck{node + "/" + prefix + "refused", strconv.FormatBool(strings.HasSuffix(saas, "refused")), func() string { + return strconv.FormatBool(refused[node] != nil) + }}, + stepCheck{node + "/" + prefix + "nodes", strconv.Itoa(len(saasDeviceViews(c, devices, node, step.At))), func() string { + return strconv.Itoa(len(r.machineNodes(node))) + }}, + ) + + checks = append(checks, stepCheck{node + "/" + prefix + "text", saasErr, func() string { + if refused[node] == nil { + return "" + } + + // The client wraps the server's message in its own context. + msg := refused[node].Error() + if i := strings.LastIndex(msg, ": "); i >= 0 { + msg = msg[i+2:] + } + + return msg + }}) + + holdChecks(t, reauthSkipReasons, id+"/"+stepName+"/", checks, map[string]bool{}) +} + +// storeLegacyHash rewrites a key's stored secret as a legacy bcrypt hash, +// as keys created before the SHA-256 format hold it. +func (r *stepReplay) storeLegacyHash(t *testing.T, label string) { + t.Helper() + + full, ok := r.keys[label] + require.True(t, ok, "no key %s", label) + + secret := full[strings.LastIndex(full, "-")+1:] + + hash, err := bcrypt.GenerateFromPassword([]byte(secret), bcrypt.MinCost) + require.NoError(t, err) + + require.NoError(t, r.srv.State().DB().DB.Exec( + "UPDATE credentials SET hash = ? WHERE id = ?", hash, r.keyIDs[label], + ).Error) } diff --git a/hscontrol/servertest/testdata/steps/identity.hujson b/hscontrol/servertest/testdata/steps/identity.hujson new file mode 100644 index 000000000..4c723ceca --- /dev/null +++ b/hscontrol/servertest/testdata/steps/identity.hujson @@ -0,0 +1,6124 @@ +// identity +// +// Whether a login updates the machine's device or makes a new one, and who owns it after. +// +// Nodes with filter rules: 1 of 1 +// Steps: 12 +// Captured at: 2026-10-17T18:33:01Z +// tool version: saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8 +// schema version: 1 +{ + "schema_version": 1, + "test_id": "identity", + "description": "Whether a login updates the machine's device or makes a new one, and who owns it after.", + "captured_at": "2026-10-17T18:33:01.35808082Z", + "tool_version": "saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.110.108.56", + "ipv6": "fd7a:115c:a1e0::3b28:6c3a", + "routable_ips": [], + "approved_routes": [] + }, "w-logout": { + "hostname": "relog", + "tags": [], + "ipv4": "100.77.66.121", + "ipv6": "fd7a:115c:a1e0::b528:427a", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "w-other": { + "hostname": "shared", + "tags": [], + "ipv4": "100.121.253.52", + "ipv6": "fd7a:115c:a1e0::f828:fd35", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "w-tagreq": { + "hostname": "tagreq", + "tags": [], + "ipv4": "100.81.223.59", + "ipv6": "fd7a:115c:a1e0::6f28:df3c", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "w-tagreq-new": { + "hostname": "w-tagreq-new", + "tags": ["tag:prod"], + "ipv4": "100.67.41.2", + "ipv6": "fd7a:115c:a1e0::ef28:2903", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "obs": 1544675981265028, + "w-logout": 7740425966752810, + "w-other": 8092976142674772, + "w-other#2": 4359783455426229, + "w-tagreq": 8394008806591857, + "w-tagreq-new": 7218758484020502 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T18:33:01.358132525Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T18:33:05Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T19:33:05Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2037 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4106 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3641 + }]} + }, { + "name": "w-other-join", + "at": "2026-10-17T18:33:09.997637698Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "W-KO1", + "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 W-KO1", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:10Z", + "description": "tscap-saasprobe W-KO1", + "expires": "2026-10-17T19:33:10Z", + "expirySeconds": 3600, + "id": "{key:W-KO1}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 15 + }, { + "kind": "join", + "node": "w-other", + "key": "W-KO1", + "hostname": "shared", + "offset_ms": 157 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:33:14Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55454", + "192.0.2.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], "latency": { + "Amsterdam": {"latencyMs": 10.999899000000001, "preferred": true}, + "Ashburn": {"latencyMs": 90.70528}, + "Bengaluru": {"latencyMs": 144.741604}, + "Chicago": {"latencyMs": 113.338903}, + "Dallas": {"latencyMs": 126.37252299999999}, + "Denver": {"latencyMs": 137.085763}, + "Dubai": {"latencyMs": 116.84686699999999}, + "Frankfurt": {"latencyMs": 17.670035000000002}, + "Helsinki": {"latencyMs": 36.204533}, + "Hong Kong": {"latencyMs": 196.506328}, + "Honolulu": {"latencyMs": 204.173202}, + "Johannesburg": {"latencyMs": 192.036759}, + "London": {"latencyMs": 16.464993}, + "Los Angeles": {"latencyMs": 144.014427}, + "Madrid": {"latencyMs": 34.230318000000004}, + "Miami": {"latencyMs": 119.258015}, + "Nairobi": {"latencyMs": 161.69261500000002}, + "New York City": {"latencyMs": 92.70091099999999}, + "Nuremberg": {"latencyMs": 30.046585}, + "Paris": {"latencyMs": 19.509194}, + "San Francisco": {"latencyMs": 157.684016}, + "Seattle": {"latencyMs": 146.116917}, + "Singapore": {"latencyMs": 211.114106}, + "Tokyo": {"latencyMs": 246.170437}, + "Toronto": {"latencyMs": 118.574235}, + "Warsaw": {"latencyMs": 26.996801} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:10Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:10Z", + "hostname": "shared", + "id": "{device:w-other}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:14Z", + "machineKey": "{machine:w-other}", + "name": "shared.tail78f774.ts.net", + "nodeId": "{device:w-other}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:W-KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:35a18393b5b7f16fe193f70a2d5a6e2ab33ac57266ecef0c10b7edfb9b5d1a83", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3768 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KO1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:10Z", + "description": "tscap-saasprobe W-KO1", + "expires": "2026-10-17T19:33:10Z", + "expirySeconds": 3600, + "id": "{key:W-KO1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:33:10Z", + "userId": "{user:odin}" + }, + "offset_ms": 3785 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3801 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 57297}, + {"Proto": "peerapi6", "Port": 57297} + ]}, + "Created": "2026-10-17T18:33:10.305052309Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared", + "ComputedNameWithHost": "shared" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, "w-other": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Hostinfo": { + "Hostname": "shared", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:10.305052309Z", + "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": "shared", + "ComputedNameWithHost": "shared" + }, + "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:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "MachineKey": "mkey:bd1453c82bdc07a27e9bfc28071382cf96b5d764a875feeb9f31fd302ca2494c", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"w-other": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 2 + }]} + }, { + "name": "w-other-second-profile", + "at": "2026-10-17T18:33:17.828265862Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "W-KK", + "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 W-KK", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:18Z", + "description": "tscap-saasprobe W-KK", + "expires": "2026-10-17T19:33:18Z", + "expirySeconds": 3600, + "id": "{key:W-KK}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 18 + }, { + "kind": "switch_profile", + "node": "w-other", + "args": ["new"], + "offset_ms": 37 + }, { + "kind": "login", + "node": "w-other", + "key": "W-KK", + "hostname": "shared", + "offset_ms": 40 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:33:21Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.64.68.37", "fd7a:115c:a1e0::c528:4426"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55454", + "192.0.2.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], "latency": { + "Amsterdam": {"latencyMs": 10.150139000000001, "preferred": true}, + "Frankfurt": {"latencyMs": 15.602932}, + "London": {"latencyMs": 15.114304} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:18Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:18Z", + "hostname": "shared", + "id": "{device:w-other#2}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:21Z", + "machineKey": "{machine:w-other}", + "name": "shared-1.tail78f774.ts.net", + "nodeId": "{device:w-other#2}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:W-KK}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:1e77977ebb94b2aabea58c7a08dd806e7d777a38471bb84b846b2fa7de232c48", + "updateAvailable": true, + "user": "thor@example.org" + }, { + "addresses": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55454", + "192.0.2.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], "latency": { + "Amsterdam": {"latencyMs": 10.999899000000001, "preferred": true}, + "Ashburn": {"latencyMs": 90.70528}, + "Bengaluru": {"latencyMs": 144.741604}, + "Chicago": {"latencyMs": 113.338903}, + "Dallas": {"latencyMs": 126.37252299999999}, + "Denver": {"latencyMs": 137.085763}, + "Dubai": {"latencyMs": 116.84686699999999}, + "Frankfurt": {"latencyMs": 17.670035000000002}, + "Helsinki": {"latencyMs": 36.204533}, + "Hong Kong": {"latencyMs": 196.506328}, + "Honolulu": {"latencyMs": 204.173202}, + "Johannesburg": {"latencyMs": 192.036759}, + "London": {"latencyMs": 16.464993}, + "Los Angeles": {"latencyMs": 144.014427}, + "Madrid": {"latencyMs": 34.230318000000004}, + "Miami": {"latencyMs": 119.258015}, + "Nairobi": {"latencyMs": 161.69261500000002}, + "New York City": {"latencyMs": 92.70091099999999}, + "Nuremberg": {"latencyMs": 30.046585}, + "Paris": {"latencyMs": 19.509194}, + "San Francisco": {"latencyMs": 157.684016}, + "Seattle": {"latencyMs": 146.116917}, + "Singapore": {"latencyMs": 211.114106}, + "Tokyo": {"latencyMs": 246.170437}, + "Toronto": {"latencyMs": 118.574235}, + "Warsaw": {"latencyMs": 26.996801} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:10Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:10Z", + "hostname": "shared", + "id": "{device:w-other}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:21Z", + "machineKey": "{machine:w-other}", + "name": "shared.tail78f774.ts.net", + "nodeId": "{device:w-other}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:W-KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:35a18393b5b7f16fe193f70a2d5a6e2ab33ac57266ecef0c10b7edfb9b5d1a83", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3387 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KK}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:18Z", + "description": "tscap-saasprobe W-KK", + "expires": "2026-10-17T19:33:18Z", + "expirySeconds": 3600, + "id": "{key:W-KK}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:33:18Z", + "userId": "{user:thor}" + }, + "offset_ms": 3404 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3419 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 57297}, + {"Proto": "peerapi6", "Port": 57297} + ]}, + "Created": "2026-10-17T18:33:10.305052309Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared", + "ComputedNameWithHost": "shared" + }, { + "ID": 4359783455426229, + "StableID": "nUcaas7Z3b11CNTRL", + "Name": "shared-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:f23d97e828ff7a9ae6c5b1efdc9f9bfb18ff622e46279827746e7298c5c04425", + "KeyExpiry": "2027-04-15T18:33:18Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "AllowedIPs": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 35476}, + {"Proto": "peerapi6", "Port": 35476} + ]}, + "Created": "2026-10-17T18:33:18.004284149Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared-1", + "ComputedNameWithHost": "shared-1 (shared)" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "w-other": { + "packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4359783455426229, + "StableID": "nUcaas7Z3b11CNTRL", + "Name": "shared-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:f23d97e828ff7a9ae6c5b1efdc9f9bfb18ff622e46279827746e7298c5c04425", + "KeyExpiry": "2027-04-15T18:33:18Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "AllowedIPs": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "Hostinfo": { + "Hostname": "shared", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:18.004284149Z", + "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": "shared-1", + "ComputedNameWithHost": "shared-1 (shared)" + }, + "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:f23d97e828ff7a9ae6c5b1efdc9f9bfb18ff622e46279827746e7298c5c04425", + "MachineKey": "mkey:bd1453c82bdc07a27e9bfc28071382cf96b5d764a875feeb9f31fd302ca2494c", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 57297}, + {"Proto": "peerapi6", "Port": 57297} + ]}, + "Created": "2026-10-17T18:33:10.305052309Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared", + "ComputedNameWithHost": "shared" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "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": {"w-other": [{ + "node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "w-other-switch-back", + "at": "2026-10-17T18:33:25.279111007Z", + "result": "observed", + "actions": [{"kind": "switch_profile", "node": "w-other", "args": ["back"]}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:33:29Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.64.68.37", "fd7a:115c:a1e0::c528:4426"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55454", + "192.0.2.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], "latency": { + "Amsterdam": {"latencyMs": 10.150139000000001, "preferred": true}, + "Frankfurt": {"latencyMs": 15.602932}, + "London": {"latencyMs": 15.114304} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:18Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:18Z", + "hostname": "shared", + "id": "{device:w-other#2}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:29Z", + "machineKey": "{machine:w-other}", + "name": "shared-1.tail78f774.ts.net", + "nodeId": "{device:w-other#2}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:W-KK}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:1e77977ebb94b2aabea58c7a08dd806e7d777a38471bb84b846b2fa7de232c48", + "updateAvailable": true, + "user": "thor@example.org" + }, { + "addresses": ["100.121.253.52", "fd7a:115c:a1e0::f828:fd35"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55454", + "192.0.2.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], "latency": { + "Amsterdam": {"latencyMs": 10.606155000000001, "preferred": true}, + "Frankfurt": {"latencyMs": 15.289809}, + "London": {"latencyMs": 13.556512999999999} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:10Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:10Z", + "hostname": "shared", + "id": "{device:w-other}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:29Z", + "machineKey": "{machine:w-other}", + "name": "shared.tail78f774.ts.net", + "nodeId": "{device:w-other}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:W-KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:35a18393b5b7f16fe193f70a2d5a6e2ab33ac57266ecef0c10b7edfb9b5d1a83", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4158 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 57297}, + {"Proto": "peerapi6", "Port": 57297} + ]}, + "Created": "2026-10-17T18:33:10.305052309Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared", + "ComputedNameWithHost": "shared" + }, { + "ID": 4359783455426229, + "StableID": "nUcaas7Z3b11CNTRL", + "Name": "shared-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:f23d97e828ff7a9ae6c5b1efdc9f9bfb18ff622e46279827746e7298c5c04425", + "KeyExpiry": "2027-04-15T18:33:18Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "AllowedIPs": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 35476}, + {"Proto": "peerapi6", "Port": 35476} + ]}, + "Created": "2026-10-17T18:33:18.004284149Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared-1", + "ComputedNameWithHost": "shared-1 (shared)" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, + "backend_state": "Running" + }, "w-other": { + "packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8092976142674772, + "StableID": "n7Yjd5mKC621CNTRL", + "Name": "shared.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "KeyExpiry": "2027-04-15T18:33:10Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "AllowedIPs": ["100.121.253.52/32", "fd7a:115c:a1e0::f828:fd35/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "Hostinfo": {"Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 57297}, + {"Proto": "peerapi6", "Port": 57297}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:10.305052309Z", + "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": "shared", + "ComputedNameWithHost": "shared" + }, + "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:468370725f9efe35922395edda7bec9a7fd0b84ef66c21bfd21f53fdf839fd34", + "MachineKey": "mkey:bd1453c82bdc07a27e9bfc28071382cf96b5d764a875feeb9f31fd302ca2494c", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 4359783455426229, + "StableID": "nUcaas7Z3b11CNTRL", + "Name": "shared-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:f23d97e828ff7a9ae6c5b1efdc9f9bfb18ff622e46279827746e7298c5c04425", + "KeyExpiry": "2027-04-15T18:33:18Z", + "DiscoKey": "discokey:16be39f7f491e685e2a0398a55016ba0a4495db3d277597d953b510dc8144a13", + "Addresses": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "AllowedIPs": ["100.64.68.37/32", "fd7a:115c:a1e0::c528:4426/128"], + "Endpoints": [ + "192.0.2.1:55454", + "198.51.100.1:55454", + "198.51.100.2:55454", + "198.51.100.3:55454" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "shared", "Services": [ + {"Proto": "peerapi4", "Port": 35476}, + {"Proto": "peerapi6", "Port": 35476} + ]}, + "Created": "2026-10-17T18:33:18.004284149Z", + "Cap": 142, + "Online": true, + "ComputedName": "shared-1", + "ComputedNameWithHost": "shared-1 (shared)" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.121.253.52/32", + "100.64.68.37/32", + "fd7a:115c:a1e0::c528:4426/128", + "fd7a:115c:a1e0::f828:fd35/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.121.253.52", + "100.64.68.37", + "fd7a:115c:a1e0::c528:4426", + "fd7a:115c:a1e0::f828:fd35" + ], "DstPorts": [{"IP": "*", "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": {"w-other": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "w-logout-join", + "at": "2026-10-17T18:33:33.463554568Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "w-other"}, { + "kind": "api", + "key": "W-KO2", + "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 W-KO2", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:38Z", + "description": "tscap-saasprobe W-KO2", + "expires": "2026-10-17T19:33:38Z", + "expirySeconds": 3600, + "id": "{key:W-KO2}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2059 + }, { + "kind": "join", + "node": "w-logout", + "key": "W-KO2", + "hostname": "relog", + "offset_ms": 4172 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:33:42Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39546", + "192.0.2.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], "latency": { + "Amsterdam": {"latencyMs": 11.85935, "preferred": true}, + "Ashburn": {"latencyMs": 99.71186}, + "Bengaluru": {"latencyMs": 227.69319199999998}, + "Chicago": {"latencyMs": 115.275946}, + "Dallas": {"latencyMs": 125.09835199999999}, + "Denver": {"latencyMs": 138.490956}, + "Dubai": {"latencyMs": 116.21654600000001}, + "Frankfurt": {"latencyMs": 16.387503000000002}, + "Helsinki": {"latencyMs": 36.874784}, + "Hong Kong": {"latencyMs": 195.914779}, + "Honolulu": {"latencyMs": 205.42692100000002}, + "Johannesburg": {"latencyMs": 183.13228}, + "London": {"latencyMs": 16.444064}, + "Los Angeles": {"latencyMs": 142.935972}, + "Madrid": {"latencyMs": 33.76594}, + "Miami": {"latencyMs": 118.517568}, + "Nairobi": {"latencyMs": 172.876775}, + "New York City": {"latencyMs": 87.44302900000001}, + "Nuremberg": {"latencyMs": 25.162664}, + "Paris": {"latencyMs": 20.188031}, + "San Francisco": {"latencyMs": 156.809298}, + "Seattle": {"latencyMs": 145.634514}, + "Singapore": {"latencyMs": 167.481888}, + "Tokyo": {"latencyMs": 248.468403}, + "Toronto": {"latencyMs": 118.47370599999999}, + "Warsaw": {"latencyMs": 28.317085} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:38Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:38Z", + "hostname": "relog", + "id": "{device:w-logout}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:42Z", + "machineKey": "{machine:w-logout}", + "name": "relog.tail78f774.ts.net", + "nodeId": "{device:w-logout}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:W-KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:80661439778f52ca19b160534d71b93878ed1e7ab93d3e2cdcd53af6654505f9", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8058 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KO2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:33:38Z", + "description": "tscap-saasprobe W-KO2", + "expires": "2026-10-17T19:33:38Z", + "expirySeconds": 3600, + "id": "{key:W-KO2}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:33:38Z", + "userId": "{user:odin}" + }, + "offset_ms": 8073 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 8088 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 7740425966752810, + "StableID": "nmcdq9seS321CNTRL", + "Name": "relog.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:ddfa1468cac8a7e4fc54191647ff65ea630d30b0df81a1d103e89e01b58d4279", + "KeyExpiry": "2027-04-15T18:33:37Z", + "DiscoKey": "discokey:e9496faa685269df6a46af73db88002b35c4f8ff5e93a90c0583b8b0dcb63627", + "Addresses": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "AllowedIPs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "Endpoints": [ + "192.0.2.1:39546", + "198.51.100.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "relog", "Services": [ + {"Proto": "peerapi4", "Port": 41886}, + {"Proto": "peerapi6", "Port": 41886} + ]}, + "Created": "2026-10-17T18:33:37.873868935Z", + "Cap": 142, + "Online": true, + "ComputedName": "relog", + "ComputedNameWithHost": "relog" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, "w-logout": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7740425966752810, + "StableID": "nmcdq9seS321CNTRL", + "Name": "relog.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:ddfa1468cac8a7e4fc54191647ff65ea630d30b0df81a1d103e89e01b58d4279", + "KeyExpiry": "2027-04-15T18:33:37Z", + "DiscoKey": "discokey:e9496faa685269df6a46af73db88002b35c4f8ff5e93a90c0583b8b0dcb63627", + "Addresses": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "AllowedIPs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "Hostinfo": { + "Hostname": "relog", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:37.873868935Z", + "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": "relog", + "ComputedNameWithHost": "relog" + }, + "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:ddfa1468cac8a7e4fc54191647ff65ea630d30b0df81a1d103e89e01b58d4279", + "MachineKey": "mkey:25640a99a8791b203a21d89b36959191a26a71d490e546ea02a856ea4ed6967f", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"w-logout": [{ + "node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3536 + }]} + }, { + "name": "w-logout-logout", + "at": "2026-10-17T18:33:45.583799613Z", + "result": "observed", + "actions": [ + {"kind": "cli", "node": "w-logout", "args": ["logout"], "exit": 0}, + {"kind": "wait", "args": ["5s"], "offset_ms": 312}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:33:54Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39546", + "192.0.2.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], "latency": { + "Amsterdam": {"latencyMs": 11.85935, "preferred": true}, + "Ashburn": {"latencyMs": 99.71186}, + "Bengaluru": {"latencyMs": 227.69319199999998}, + "Chicago": {"latencyMs": 115.275946}, + "Dallas": {"latencyMs": 125.09835199999999}, + "Denver": {"latencyMs": 138.490956}, + "Dubai": {"latencyMs": 116.21654600000001}, + "Frankfurt": {"latencyMs": 16.387503000000002}, + "Helsinki": {"latencyMs": 36.874784}, + "Hong Kong": {"latencyMs": 195.914779}, + "Honolulu": {"latencyMs": 205.42692100000002}, + "Johannesburg": {"latencyMs": 183.13228}, + "London": {"latencyMs": 16.444064}, + "Los Angeles": {"latencyMs": 142.935972}, + "Madrid": {"latencyMs": 33.76594}, + "Miami": {"latencyMs": 118.517568}, + "Nairobi": {"latencyMs": 172.876775}, + "New York City": {"latencyMs": 87.44302900000001}, + "Nuremberg": {"latencyMs": 25.162664}, + "Paris": {"latencyMs": 20.188031}, + "San Francisco": {"latencyMs": 156.809298}, + "Seattle": {"latencyMs": 145.634514}, + "Singapore": {"latencyMs": 167.481888}, + "Tokyo": {"latencyMs": 248.468403}, + "Toronto": {"latencyMs": 118.47370599999999}, + "Warsaw": {"latencyMs": 28.317085} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:38Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-16T18:33:46Z", + "hostname": "relog", + "id": "{device:w-logout}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:54Z", + "machineKey": "{machine:w-logout}", + "name": "relog.tail78f774.ts.net", + "nodeId": "{device:w-logout}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:W-KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:80661439778f52ca19b160534d71b93878ed1e7ab93d3e2cdcd53af6654505f9", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8388 + } + ], + "captures": { + "obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 7740425966752810, + "StableID": "nmcdq9seS321CNTRL", + "Name": "relog.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:ddfa1468cac8a7e4fc54191647ff65ea630d30b0df81a1d103e89e01b58d4279", + "KeyExpiry": "2026-10-16T18:33:45Z", + "DiscoKey": "discokey:e9496faa685269df6a46af73db88002b35c4f8ff5e93a90c0583b8b0dcb63627", + "Addresses": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "AllowedIPs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "Hostinfo": {"OS": "linux", "Hostname": "relog", "Services": [ + {"Proto": "peerapi4", "Port": 41886}, + {"Proto": "peerapi6", "Port": 41886} + ]}, + "Created": "2026-10-17T18:33:37.873868935Z", + "Cap": 142, + "Online": true, + "ComputedName": "relog", + "ComputedNameWithHost": "relog", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, + "w-logout": {"backend_state": "NeedsLogin"} + }, + "register": {"w-logout": [{ + "node_key": "{nodekey:4}", + "node_key_expired": true, + "machine_authorized": true + }]} + }, { + "name": "w-logout-relogin", + "at": "2026-10-17T18:33:57.996665646Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "W-KR", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": true, "tags": null} + }}, "description": "tscap-saasprobe W-KR", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 18 + }, { + "kind": "relogin", + "node": "w-logout", + "key": "W-KR", + "hostname": "relog", + "offset_ms": 38 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:01Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39546", + "192.0.2.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], "latency": { + "Amsterdam": {"latencyMs": 10.413464000000001, "preferred": true}, + "Frankfurt": {"latencyMs": 15.402837000000002}, + "London": {"latencyMs": 15.089879} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:38Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:58Z", + "hostname": "relog", + "id": "{device:w-logout}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:33:58Z", + "machineKey": "{machine:w-logout}", + "name": "relog.tail78f774.ts.net", + "nodeId": "{device:w-logout}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:W-KR}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9c595ac284c551216dfb7b414741f9dfb2fb78457b73092766a68ec040a7aa12", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3389 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3406 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3422 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 7740425966752810, + "StableID": "nmcdq9seS321CNTRL", + "Name": "relog.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e95dc1c682941e2b789b5b5832ef4bfdd627964af66d89f845b9952c7e96025e", + "KeyExpiry": "2027-04-15T18:33:58Z", + "DiscoKey": "discokey:e9496faa685269df6a46af73db88002b35c4f8ff5e93a90c0583b8b0dcb63627", + "Addresses": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "AllowedIPs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "Endpoints": [ + "192.0.2.1:39546", + "198.51.100.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "relog", "Services": [ + {"Proto": "peerapi4", "Port": 41886}, + {"Proto": "peerapi6", "Port": 41886} + ]}, + "Created": "2026-10-17T18:33:37.873868935Z", + "Cap": 142, + "Online": true, + "ComputedName": "relog", + "ComputedNameWithHost": "relog" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, "w-logout": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7740425966752810, + "StableID": "nmcdq9seS321CNTRL", + "Name": "relog.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e95dc1c682941e2b789b5b5832ef4bfdd627964af66d89f845b9952c7e96025e", + "KeyExpiry": "2027-04-15T18:33:58Z", + "DiscoKey": "discokey:e9496faa685269df6a46af73db88002b35c4f8ff5e93a90c0583b8b0dcb63627", + "Addresses": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "AllowedIPs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "Endpoints": [ + "192.0.2.1:39546", + "198.51.100.1:39546", + "198.51.100.2:39546", + "198.51.100.3:39546" + ], + "Hostinfo": { + "Hostname": "relog", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:33:37.873868935Z", + "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": "relog", + "ComputedNameWithHost": "relog" + }, + "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:e95dc1c682941e2b789b5b5832ef4bfdd627964af66d89f845b9952c7e96025e", + "MachineKey": "mkey:25640a99a8791b203a21d89b36959191a26a71d490e546ea02a856ea4ed6967f", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.77.66.121/32", "fd7a:115c:a1e0::b528:427a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.77.66.121", "fd7a:115c:a1e0::b528:427a"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"w-logout": [{ + "node_key": "{nodekey:5}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3 + }]} + }, { + "name": "w-tagreq-join", + "at": "2026-10-17T18:34:05.447462001Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "w-logout"}, { + "kind": "join", + "node": "w-tagreq", + "key": "W-KR", + "hostname": "tagreq", + "offset_ms": 186 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:09Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56502", + "192.0.2.1:56502", + "198.51.100.2:56502", + "198.51.100.3:56502" + ], "latency": { + "Amsterdam": {"latencyMs": 11.890915999999999, "preferred": true}, + "Ashburn": {"latencyMs": 95.775795}, + "Bengaluru": {"latencyMs": 231.35671}, + "Chicago": {"latencyMs": 112.620681}, + "Dallas": {"latencyMs": 125.37944900000001}, + "Denver": {"latencyMs": 139.15269899999998}, + "Dubai": {"latencyMs": 115.224241}, + "Frankfurt": {"latencyMs": 16.588257}, + "Helsinki": {"latencyMs": 35.66115}, + "Hong Kong": {"latencyMs": 195.25325800000002}, + "Honolulu": {"latencyMs": 203.19744400000002}, + "Johannesburg": {"latencyMs": 178.461866}, + "London": {"latencyMs": 16.679354}, + "Los Angeles": {"latencyMs": 143.80591900000002}, + "Madrid": {"latencyMs": 33.255326000000004}, + "Miami": {"latencyMs": 118.952127}, + "Nairobi": {"latencyMs": 158.57612600000002}, + "New York City": {"latencyMs": 90.890952}, + "Nuremberg": {"latencyMs": 21.805411}, + "Paris": {"latencyMs": 18.250705999999997}, + "San Francisco": {"latencyMs": 155.461714}, + "Seattle": {"latencyMs": 145.544713}, + "Singapore": {"latencyMs": 166.992411}, + "Tokyo": {"latencyMs": 242.178309}, + "Toronto": {"latencyMs": 120.15102399999999}, + "Warsaw": {"latencyMs": 28.17294} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:34:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:34:06Z", + "hostname": "tagreq", + "id": "{device:w-tagreq}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:34:09Z", + "machineKey": "{machine:w-tagreq}", + "name": "tagreq.tail78f774.ts.net", + "nodeId": "{device:w-tagreq}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:W-KR}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:aef1761c6eb245e986632bf6bd001b7f03d0f158c5de1b7127df43ba2227069f", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3792 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3810 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3825 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 8394008806591857, + "StableID": "n8ajJuNfY821CNTRL", + "Name": "tagreq.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a9acf6645dfe559d3b11419b2f9a41c772afec59e89b684b2d8bc5ad6fd1df3b", + "KeyExpiry": "2027-04-15T18:34:05Z", + "DiscoKey": "discokey:5ccc2d6da074506052db72c9fa3c87bd9d8915b25d902e297f38d1b8c3d61518", + "Addresses": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "AllowedIPs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "Endpoints": [ + "192.0.2.1:56502", + "198.51.100.1:56502", + "198.51.100.2:56502", + "198.51.100.3:56502" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "tagreq", "Services": [ + {"Proto": "peerapi4", "Port": 44385}, + {"Proto": "peerapi6", "Port": 44385} + ]}, + "Created": "2026-10-17T18:34:05.77589632Z", + "Cap": 142, + "Online": true, + "ComputedName": "tagreq", + "ComputedNameWithHost": "tagreq" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, "w-tagreq": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8394008806591857, + "StableID": "n8ajJuNfY821CNTRL", + "Name": "tagreq.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a9acf6645dfe559d3b11419b2f9a41c772afec59e89b684b2d8bc5ad6fd1df3b", + "KeyExpiry": "2027-04-15T18:34:05Z", + "DiscoKey": "discokey:5ccc2d6da074506052db72c9fa3c87bd9d8915b25d902e297f38d1b8c3d61518", + "Addresses": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "AllowedIPs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "Hostinfo": { + "Hostname": "tagreq", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:34:05.77589632Z", + "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": "tagreq", + "ComputedNameWithHost": "tagreq" + }, + "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:a9acf6645dfe559d3b11419b2f9a41c772afec59e89b684b2d8bc5ad6fd1df3b", + "MachineKey": "mkey:2ac591db8486338331838f3e5e488d233b554962779d2461693791cf81687d18", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"w-tagreq": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "w-tagreq-relogin-tags", + "at": "2026-10-17T18:34:13.305450814Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "w-tagreq", + "key": "W-KR", + "force": true, + "request_tags": ["tag:prod"], + "hostname": "tagreq", + "offset_ms": 18 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:17Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.81.223.59", "fd7a:115c:a1e0::6f28:df3c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56502", + "192.0.2.1:56502", + "198.51.100.2:56502", + "198.51.100.3:56502" + ], "latency": { + "Amsterdam": {"latencyMs": 11.581455, "preferred": true}, + "Frankfurt": {"latencyMs": 16.257698}, + "London": {"latencyMs": 15.309254} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:34:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:34:14Z", + "hostname": "tagreq", + "id": "{device:w-tagreq}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:13Z", + "machineKey": "{machine:w-tagreq}", + "name": "tagreq.tail78f774.ts.net", + "nodeId": "{device:w-tagreq}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:W-KR}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:aef1761c6eb245e986632bf6bd001b7f03d0f158c5de1b7127df43ba2227069f", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3646 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3663 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3681 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 8394008806591857, + "StableID": "n8ajJuNfY821CNTRL", + "Name": "tagreq.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f2da6021d283e951b4611c44033ff1cc4f5f374728e7b0443732629d9c6bd115", + "DiscoKey": "discokey:5ccc2d6da074506052db72c9fa3c87bd9d8915b25d902e297f38d1b8c3d61518", + "Addresses": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "AllowedIPs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "Endpoints": [ + "192.0.2.1:56502", + "198.51.100.1:56502", + "198.51.100.2:56502", + "198.51.100.3:56502" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "tagreq", "Services": [ + {"Proto": "peerapi4", "Port": 44385}, + {"Proto": "peerapi6", "Port": 44385} + ]}, + "Created": "2026-10-17T18:34:05.77589632Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "tagreq", + "ComputedNameWithHost": "tagreq" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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" + }, "1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, "backend_state": "Running"}, "w-tagreq": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8394008806591857, + "StableID": "n8ajJuNfY821CNTRL", + "Name": "tagreq.tail78f774.ts.net.", + "User": 8394008806591857, + "Key": "nodekey:f2da6021d283e951b4611c44033ff1cc4f5f374728e7b0443732629d9c6bd115", + "DiscoKey": "discokey:5ccc2d6da074506052db72c9fa3c87bd9d8915b25d902e297f38d1b8c3d61518", + "Addresses": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "AllowedIPs": ["100.81.223.59/32", "fd7a:115c:a1e0::6f28:df3c/128"], + "Endpoints": [ + "192.0.2.1:56502", + "198.51.100.1:56502", + "198.51.100.2:56502", + "198.51.100.3:56502" + ], + "Hostinfo": {"Hostname": "tagreq", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 44385}, + {"Proto": "peerapi6", "Port": 44385}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:34:05.77589632Z", + "Tags": ["tag:prod"], + "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": "tagreq", + "ComputedNameWithHost": "tagreq" + }, + "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:f2da6021d283e951b4611c44033ff1cc4f5f374728e7b0443732629d9c6bd115", + "MachineKey": "mkey:2ac591db8486338331838f3e5e488d233b554962779d2461693791cf81687d18", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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" + }, "8394008806591857": { + "ID": 8394008806591857, + "LoginName": "tagreq.tail78f774.ts.net", + "DisplayName": "tagreq" + }} + }, "backend_state": "Running"}}, + "register": {"w-tagreq": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:7}", + "old_node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "w-tagreq-new-join", + "at": "2026-10-17T18:34:21.014860218Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "w-tagreq"}, { + "kind": "join", + "node": "w-tagreq-new", + "key": "W-KR", + "request_tags": ["tag:prod"], + "hostname": "w-tagreq-new", + "offset_ms": 184 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:25Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.67.41.2", "fd7a:115c:a1e0::ef28:2903"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:55524", + "192.0.2.1:55524", + "198.51.100.2:55524", + "198.51.100.3:55524" + ], "latency": { + "Amsterdam": {"latencyMs": 11.8154, "preferred": true}, + "Ashburn": {"latencyMs": 92.494675}, + "Bengaluru": {"latencyMs": 151.067025}, + "Chicago": {"latencyMs": 113.892611}, + "Dallas": {"latencyMs": 126.8299}, + "Denver": {"latencyMs": 137.034713}, + "Dubai": {"latencyMs": 115.801085}, + "Frankfurt": {"latencyMs": 17.513499}, + "Helsinki": {"latencyMs": 36.154484000000004}, + "Hong Kong": {"latencyMs": 195.751629}, + "Honolulu": {"latencyMs": 192.25404500000002}, + "Johannesburg": {"latencyMs": 208.934146}, + "London": {"latencyMs": 16.207708}, + "Los Angeles": {"latencyMs": 143.666279}, + "Madrid": {"latencyMs": 33.932409}, + "Miami": {"latencyMs": 119.36896800000001}, + "Nairobi": {"latencyMs": 173.619319}, + "New York City": {"latencyMs": 92.321104}, + "Nuremberg": {"latencyMs": 21.928948000000002}, + "Paris": {"latencyMs": 18.847155}, + "San Francisco": {"latencyMs": 154.832517}, + "Seattle": {"latencyMs": 146.176223}, + "Singapore": {"latencyMs": 174.01907}, + "Tokyo": {"latencyMs": 246.249562}, + "Toronto": {"latencyMs": 118.010358}, + "Warsaw": {"latencyMs": 28.203965} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:34:21Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:34:21Z", + "hostname": "w-tagreq-new", + "id": "{device:w-tagreq-new}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:25Z", + "machineKey": "{machine:w-tagreq-new}", + "name": "w-tagreq-new.tail78f774.ts.net", + "nodeId": "{device:w-tagreq-new}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:W-KR}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9eed9da7a4b6ccc9a064ccc13edcf278997e8ada328b52da08de5d4758f01811", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3791 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3807 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3821 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [{ + "ID": 7218758484020502, + "StableID": "nHUqkaYPNy11CNTRL", + "Name": "w-tagreq-new.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:cc3729480222bff53a2c5cff58c87a91b69622e1077338a33e4fd9c2ef432902", + "DiscoKey": "discokey:e15400ad7e4c36301fb3a92f0bfcdf3a6b23bc63916a6d51a038487ad2711421", + "Addresses": ["100.67.41.2/32", "fd7a:115c:a1e0::ef28:2903/128"], + "AllowedIPs": ["100.67.41.2/32", "fd7a:115c:a1e0::ef28:2903/128"], + "Endpoints": [ + "192.0.2.1:55524", + "198.51.100.1:55524", + "198.51.100.2:55524", + "198.51.100.3:55524" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "w-tagreq-new", "Services": [ + {"Proto": "peerapi4", "Port": 37964}, + {"Proto": "peerapi6", "Port": 37964} + ]}, + "Created": "2026-10-17T18:34:21.369536997Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "w-tagreq-new", + "ComputedNameWithHost": "w-tagreq-new" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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" + }, "1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "w-tagreq-new": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7218758484020502, + "StableID": "nHUqkaYPNy11CNTRL", + "Name": "w-tagreq-new.tail78f774.ts.net.", + "User": 7218758484020502, + "Key": "nodekey:cc3729480222bff53a2c5cff58c87a91b69622e1077338a33e4fd9c2ef432902", + "DiscoKey": "discokey:e15400ad7e4c36301fb3a92f0bfcdf3a6b23bc63916a6d51a038487ad2711421", + "Addresses": ["100.67.41.2/32", "fd7a:115c:a1e0::ef28:2903/128"], + "AllowedIPs": ["100.67.41.2/32", "fd7a:115c:a1e0::ef28:2903/128"], + "Hostinfo": { + "Hostname": "w-tagreq-new", + "RequestTags": ["tag:prod"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:34:21.369536997Z", + "Tags": ["tag:prod"], + "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": "w-tagreq-new", + "ComputedNameWithHost": "w-tagreq-new" + }, + "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:cc3729480222bff53a2c5cff58c87a91b69622e1077338a33e4fd9c2ef432902", + "MachineKey": "mkey:0230d43cb0a2fb12eb87bbc48edd75cb4104491bdb360501754c9403d47e9e02", + "Peers": [{ + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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" + }, "7218758484020502": { + "ID": 7218758484020502, + "LoginName": "w-tagreq-new.tail78f774.ts.net", + "DisplayName": "w-tagreq-new" + }} + }, "backend_state": "Running"}}, + "register": {"w-tagreq-new": [{ + "node_key": "{nodekey:8}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "w-tagreq-other-join", + "at": "2026-10-17T18:34:28.865307421Z", + "result": "expected-refusal", + "actions": [{"kind": "retire", "node": "w-tagreq-new"}, { + "kind": "api", + "key": "W-KK2", + "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 W-KK2", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:34:31Z", + "description": "tscap-saasprobe W-KK2", + "expires": "2026-10-17T19:34:31Z", + "expirySeconds": 3600, + "id": "{key:W-KK2}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 59 + }, { + "kind": "join", + "node": "w-tagreq-other", + "key": "W-KK2", + "request_tags": ["tag:prod"], + "hostname": "w-tagreq-other", + "offset_ms": 2173 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:45268", + "192.0.2.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], "latency": { + "Amsterdam": {"latencyMs": 11.953059, "preferred": true}, + "Ashburn": {"latencyMs": 97.734215}, + "Bengaluru": {"latencyMs": 138.47326800000002}, + "Chicago": {"latencyMs": 115.11239099999999}, + "Dallas": {"latencyMs": 126.926035}, + "Denver": {"latencyMs": 136.645228}, + "Dubai": {"latencyMs": 116.102925}, + "Frankfurt": {"latencyMs": 18.341113}, + "Helsinki": {"latencyMs": 36.11425800000001}, + "Hong Kong": {"latencyMs": 196.82180599999998}, + "Honolulu": {"latencyMs": 217.776884}, + "Johannesburg": {"latencyMs": 183.162185}, + "London": {"latencyMs": 17.057478}, + "Los Angeles": {"latencyMs": 141.24497499999998}, + "Madrid": {"latencyMs": 34.170155}, + "Miami": {"latencyMs": 119.38723399999999}, + "Nairobi": {"latencyMs": 161.691544}, + "New York City": {"latencyMs": 90.11799400000001}, + "Nuremberg": {"latencyMs": 18.483742}, + "Paris": {"latencyMs": 18.201553}, + "San Francisco": {"latencyMs": 154.778729}, + "Seattle": {"latencyMs": 145.078879}, + "Singapore": {"latencyMs": 171.925061}, + "Tokyo": {"latencyMs": 241.849021}, + "Toronto": {"latencyMs": 120.213459}, + "Warsaw": {"latencyMs": 28.947192} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:33:06Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:33:06Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:34:34Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:520b925f1f764d29e96587aa26e326d205090627b0626a0307aab25c599231e7", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5406 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:W-KK2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:34:31Z", + "description": "tscap-saasprobe W-KK2", + "expires": "2026-10-17T19:34:31Z", + "expirySeconds": 3600, + "id": "{key:W-KK2}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 5422 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:33:58Z", + "description": "tscap-saasprobe W-KR", + "expires": "2026-10-17T19:33:58Z", + "expirySeconds": 3600, + "id": "{key:W-KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:34:31Z", + "description": "tscap-saasprobe W-KK2", + "expires": "2026-10-17T19:34:31Z", + "expirySeconds": 3600, + "id": "{key:W-KK2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 5437 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1544675981265028, + "StableID": "nT4Gy52b4D11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1544675981265028, + "Key": "nodekey:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "DiscoKey": "discokey:daf1d8e52fcc649993e90631b9d49592e1fe54d6a8b16f751841397b84279743", + "Addresses": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "AllowedIPs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "Endpoints": [ + "192.0.2.1:45268", + "198.51.100.1:45268", + "198.51.100.2:45268", + "198.51.100.3:45268" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 41741}, + {"Proto": "peerapi6", "Port": 41741}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:33:05.607235376Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8f7bbbefe675cea2dbc01c25c71f1493632a4e0cc59a0ed11578acb83b2e6c38", + "MachineKey": "mkey:e3aff24d57f1bf12edd0e0ef85fceae1cc5ba88ff22d0bec79d76430eaa1bb24", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.110.108.56/32", "fd7a:115c:a1e0::3b28:6c3a/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.110.108.56", "fd7a:115c:a1e0::3b28:6c3a"], + "DstPorts": [{"IP": "*", "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" + }, "1544675981265028": { + "ID": 1544675981265028, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "w-tagreq-other": { + "backend_state": "NeedsLogin", + "err_message": "requested tags [tag:prod] are invalid or not permitted" + }}, + "register": {"w-tagreq-other": [{ + "node_key": "{nodekey:9}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 2134 + }, { + "err": "requested tags [tag:prod] are invalid or not permitted", + "offset_ms": 2134 + }, { + "node_key": "{nodekey:10}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 2134 + }, { + "err": "requested tags [tag:prod] are invalid or not permitted", + "offset_ms": 7134 + }, {"node_key": "{nodekey:11}", "offset_ms": 7134}]} + }, { + "name": "teardown", + "at": "2026-10-17T18:34:38.328886575Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "w-tagreq-other"}] + }] +} diff --git a/hscontrol/servertest/testdata/steps/reauth-foreign.hujson b/hscontrol/servertest/testdata/steps/reauth-foreign.hujson new file mode 100644 index 000000000..fc0f712bc --- /dev/null +++ b/hscontrol/servertest/testdata/steps/reauth-foreign.hujson @@ -0,0 +1,10649 @@ +// reauth-foreign +// +// Tagged devices logging in with another user's keys, ephemeral devices whose key changes or goes, and a tagged logout. +// +// Nodes with filter rules: 1 of 1 +// Steps: 22 +// Captured at: 2026-10-17T17:57:23Z +// tool version: saasprobe afc674cae4618176e7313fcd9ea484e0610747c8 +// schema version: 1 +{ + "schema_version": 1, + "test_id": "reauth-foreign", + "description": "Tagged devices logging in with another user's keys, ephemeral devices whose key changes or goes, and a tagged logout.", + "captured_at": "2026-10-17T17:57:23.45373122Z", + "tool_version": "saasprobe afc674cae4618176e7313fcd9ea484e0610747c8", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"k-node": { + "hostname": "k-node", + "tags": [], + "ipv4": "100.92.182.58", + "ipv6": "fd7a:115c:a1e0::5928:b63b", + "user": "thor", + "routable_ips": [], + "approved_routes": [] + }, "obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.91.134.70", + "ipv6": "fd7a:115c:a1e0::1528:8647", + "routable_ips": [], + "approved_routes": [] + }, "t-eph": { + "hostname": "t-eph", + "tags": ["tag:ci"], + "ipv4": "100.106.75.32", + "ipv6": "fd7a:115c:a1e0::9928:4b21", + "routable_ips": [], + "approved_routes": [] + }, "t-eph-del": { + "hostname": "t-eph-del", + "tags": ["tag:ci"], + "ipv4": "100.102.181.100", + "ipv6": "fd7a:115c:a1e0::cd28:b565", + "routable_ips": [], + "approved_routes": [] + }, "t-exp-foreign": { + "hostname": "t-exp-foreign", + "tags": ["tag:prod"], + "ipv4": "100.104.123.14", + "ipv6": "fd7a:115c:a1e0::ea28:7b0f", + "routable_ips": [], + "approved_routes": [] + }, "t-logout": { + "hostname": "t-logout", + "tags": ["tag:prod"], + "ipv4": "100.72.236.44", + "ipv6": "fd7a:115c:a1e0::4228:ec2d", + "routable_ips": [], + "approved_routes": [] + }, "t-reauth-foreign": { + "hostname": "t-reauth-foreign", + "tags": ["tag:prod"], + "ipv4": "100.122.250.46", + "ipv6": "fd7a:115c:a1e0::a028:fa2f", + "routable_ips": [], + "approved_routes": [] + }, "t-wake": { + "hostname": "t-wake", + "tags": ["tag:prod"], + "ipv4": "100.105.62.5", + "ipv6": "fd7a:115c:a1e0::ce28:3e06", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "k-node": 2446447297962030, + "obs": 1631235846200752, + "t-eph": 3771831608150364, + "t-eph-del": 4133107043705733, + "t-exp-foreign": 4462263958827427, + "t-exp-foreign#2": 225337307330802, + "t-logout": 5911784517561066, + "t-reauth-foreign": 7689980535642349, + "t-reauth-foreign#2": 8595256763755087, + "t-wake": 1280814900366100 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T17:57:23.453790167Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T17:57:27Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T18:57:27Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2003 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4101 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3546 + }]} + }, { + "name": "t-wake-join", + "at": "2026-10-17T17:59:20.972851535Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "K3", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K3", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:59:21Z", + "description": "tscap-saasprobe K3", + "expires": "2026-10-17T18:59:21Z", + "expirySeconds": 3600, + "id": "{key:K3}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 15 + }, { + "kind": "join", + "node": "t-wake", + "key": "K3", + "hostname": "t-wake", + "offset_ms": 142 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:25Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.105.62.5", "fd7a:115c:a1e0::ce28:3e06"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42881", + "192.0.2.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], "latency": { + "Amsterdam": {"latencyMs": 12.125131000000001, "preferred": true}, + "Ashburn": {"latencyMs": 95.049735}, + "Bengaluru": {"latencyMs": 144.216484}, + "Chicago": {"latencyMs": 111.39525499999999}, + "Dallas": {"latencyMs": 126.827958}, + "Denver": {"latencyMs": 135.34390199999999}, + "Dubai": {"latencyMs": 116.355095}, + "Frankfurt": {"latencyMs": 16.271949}, + "Helsinki": {"latencyMs": 35.769326}, + "Hong Kong": {"latencyMs": 195.659335}, + "Honolulu": {"latencyMs": 210.170739}, + "Johannesburg": {"latencyMs": 195.30519299999997}, + "London": {"latencyMs": 14.562059}, + "Los Angeles": {"latencyMs": 143.974387}, + "Madrid": {"latencyMs": 34.346466}, + "Miami": {"latencyMs": 122.96296099999999}, + "Nairobi": {"latencyMs": 163.94688}, + "New York City": {"latencyMs": 88.876732}, + "Nuremberg": {"latencyMs": 28.906544}, + "Paris": {"latencyMs": 19.84329}, + "San Francisco": {"latencyMs": 156.279422}, + "Seattle": {"latencyMs": 143.813052}, + "Tokyo": {"latencyMs": 244.038566}, + "Toronto": {"latencyMs": 119.856066}, + "Warsaw": {"latencyMs": 28.762900000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:21Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:21Z", + "hostname": "t-wake", + "id": "{device:t-wake}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:25Z", + "machineKey": "{machine:t-wake}", + "name": "t-wake.tail78f774.ts.net", + "nodeId": "{device:t-wake}", + "nodeKey": "{nodekey:16}", + "oauthClientId": "{key:K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f545fd8380087c8cba8a947ca4c204dd1d41226953d2a28a16b41daa77de6aa0", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3742 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K3}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:59:21Z", + "description": "tscap-saasprobe K3", + "expires": "2026-10-17T18:59:21Z", + "expirySeconds": 3600, + "id": "{key:K3}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:59:21Z", + "userId": "{user:odin}" + }, + "offset_ms": 3759 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3775 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-wake", + "ComputedNameWithHost": "t-wake" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-wake": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1280814900366100, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Hostinfo": { + "Hostname": "t-wake", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:59:21.242836461Z", + "Tags": ["tag:prod"], + "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": "t-wake", + "ComputedNameWithHost": "t-wake" + }, + "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:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "MachineKey": "mkey:8d8e434002b3b32a66b55a6e019e44bdf24eb5069d3cf129b382b5c8b2537905", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1280814900366100": { + "ID": 1280814900366100, + "LoginName": "t-wake.tail78f774.ts.net", + "DisplayName": "t-wake" + }} + }, "backend_state": "Running"}}, + "register": {"t-wake": [{ + "node_key": "{nodekey:16}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 27 + }]} + }, { + "name": "t-wake-relogin", + "at": "2026-10-17T17:59:28.775756086Z", + "result": "observed", + "actions": [{"kind": "relogin", "node": "t-wake", "key": "K3", "hostname": "t-wake"}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:33Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.105.62.5", "fd7a:115c:a1e0::ce28:3e06"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42881", + "192.0.2.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], "latency": { + "Amsterdam": {"latencyMs": 11.1229, "preferred": true}, + "Frankfurt": {"latencyMs": 16.181489}, + "London": {"latencyMs": 14.611873} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:21Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:21Z", + "hostname": "t-wake", + "id": "{device:t-wake}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:33Z", + "machineKey": "{machine:t-wake}", + "name": "t-wake.tail78f774.ts.net", + "nodeId": "{device:t-wake}", + "nodeKey": "{nodekey:16}", + "oauthClientId": "{key:K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f545fd8380087c8cba8a947ca4c204dd1d41226953d2a28a16b41daa77de6aa0", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4355 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K3}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:59:21Z", + "description": "tscap-saasprobe K3", + "expires": "2026-10-17T18:59:21Z", + "expirySeconds": 3600, + "id": "{key:K3}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:59:21Z", + "userId": "{user:odin}" + }, + "offset_ms": 4371 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4387 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-wake", + "ComputedNameWithHost": "t-wake" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-wake": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1280814900366100, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "Hostinfo": {"Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Tags": ["tag:prod"], + "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": "t-wake", + "ComputedNameWithHost": "t-wake" + }, + "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:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "MachineKey": "mkey:8d8e434002b3b32a66b55a6e019e44bdf24eb5069d3cf129b382b5c8b2537905", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1280814900366100": { + "ID": 1280814900366100, + "LoginName": "t-wake.tail78f774.ts.net", + "DisplayName": "t-wake" + }} + }, "backend_state": "Running"}}, + "register": {"t-wake": [{ + "node_key": "{nodekey:16}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-wake-foreign-key", + "at": "2026-10-17T17:59:37.195670333Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "KU", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": true, "tags": null} + }}, "description": "tscap-saasprobe KU", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 19 + }, { + "kind": "relogin", + "node": "t-wake", + "key": "KU", + "hostname": "t-wake", + "offset_ms": 39 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:42Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.105.62.5", "fd7a:115c:a1e0::ce28:3e06"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42881", + "192.0.2.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], "latency": { + "Amsterdam": {"latencyMs": 11.1229, "preferred": true}, + "Frankfurt": {"latencyMs": 16.181489}, + "London": {"latencyMs": 14.611873} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:21Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:21Z", + "hostname": "t-wake", + "id": "{device:t-wake}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:42Z", + "machineKey": "{machine:t-wake}", + "name": "t-wake.tail78f774.ts.net", + "nodeId": "{device:t-wake}", + "nodeKey": "{nodekey:16}", + "oauthClientId": "{key:K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f545fd8380087c8cba8a947ca4c204dd1d41226953d2a28a16b41daa77de6aa0", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4403 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KU}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 4419 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 4435 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-wake", + "ComputedNameWithHost": "t-wake" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-wake": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1280814900366100, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "Hostinfo": {"Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Tags": ["tag:prod"], + "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": "t-wake", + "ComputedNameWithHost": "t-wake" + }, + "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:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "MachineKey": "mkey:8d8e434002b3b32a66b55a6e019e44bdf24eb5069d3cf129b382b5c8b2537905", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1280814900366100": { + "ID": 1280814900366100, + "LoginName": "t-wake.tail78f774.ts.net", + "DisplayName": "t-wake" + }} + }, "backend_state": "Running"}}, + "register": {"t-wake": [{ + "node_key": "{nodekey:16}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-wake-foreign-key-tags", + "at": "2026-10-17T17:59:45.660456751Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "t-wake", + "key": "KU", + "request_tags": ["tag:prod"], + "hostname": "t-wake", + "offset_ms": 37 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:50Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.105.62.5", "fd7a:115c:a1e0::ce28:3e06"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42881", + "192.0.2.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], "latency": { + "Amsterdam": {"latencyMs": 11.1229, "preferred": true}, + "Frankfurt": {"latencyMs": 16.181489}, + "London": {"latencyMs": 14.611873} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:21Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:21Z", + "hostname": "t-wake", + "id": "{device:t-wake}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:50Z", + "machineKey": "{machine:t-wake}", + "name": "t-wake.tail78f774.ts.net", + "nodeId": "{device:t-wake}", + "nodeKey": "{nodekey:16}", + "oauthClientId": "{key:K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f545fd8380087c8cba8a947ca4c204dd1d41226953d2a28a16b41daa77de6aa0", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4422 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KU}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 4438 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 4473 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-wake", "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-wake", + "ComputedNameWithHost": "t-wake" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-wake": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1280814900366100, + "StableID": "nTpSoTq51B11CNTRL", + "Name": "t-wake.tail78f774.ts.net.", + "User": 1280814900366100, + "Key": "nodekey:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "DiscoKey": "discokey:3e788b5183d6d83042e2ca65d09c1e2b482054ab84613a532418e4a1918bc310", + "Addresses": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "AllowedIPs": ["100.105.62.5/32", "fd7a:115c:a1e0::ce28:3e06/128"], + "Endpoints": [ + "192.0.2.1:42881", + "198.51.100.1:42881", + "198.51.100.2:42881", + "198.51.100.3:42881" + ], + "Hostinfo": {"Hostname": "t-wake", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 50767}, + {"Proto": "peerapi6", "Port": 50767}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:59:21.242836461Z", + "Tags": ["tag:prod"], + "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": "t-wake", + "ComputedNameWithHost": "t-wake" + }, + "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:df4825d6c90bd4961dd8be4a1c9d82f7f5dffbac36729f943cf9377bcea93e05", + "MachineKey": "mkey:8d8e434002b3b32a66b55a6e019e44bdf24eb5069d3cf129b382b5c8b2537905", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1280814900366100": { + "ID": 1280814900366100, + "LoginName": "t-wake.tail78f774.ts.net", + "DisplayName": "t-wake" + }} + }, "backend_state": "Running"}}, + "register": {"t-wake": [{ + "node_key": "{nodekey:16}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-reauth-foreign-join", + "at": "2026-10-17T17:59:54.163736231Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-wake"}, { + "kind": "api", + "key": "K6", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K6", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:59:56Z", + "description": "tscap-saasprobe K6", + "expires": "2026-10-17T18:59:56Z", + "expirySeconds": 3600, + "id": "{key:K6}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 83 + }, { + "kind": "join", + "node": "t-reauth-foreign", + "key": "K6", + "hostname": "t-reauth-foreign", + "offset_ms": 2196 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:00Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.122.250.46", "fd7a:115c:a1e0::a028:fa2f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:43826", + "192.0.2.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], "latency": { + "Amsterdam": {"latencyMs": 11.24347, "preferred": true}, + "Ashburn": {"latencyMs": 98.79038399999999}, + "Bengaluru": {"latencyMs": 210.119889}, + "Chicago": {"latencyMs": 113.682805}, + "Dallas": {"latencyMs": 127.186742}, + "Denver": {"latencyMs": 139.456401}, + "Dubai": {"latencyMs": 115.78988899999999}, + "Frankfurt": {"latencyMs": 18.172957}, + "Helsinki": {"latencyMs": 35.10549}, + "Hong Kong": {"latencyMs": 194.894271}, + "Honolulu": {"latencyMs": 198.20891500000002}, + "Johannesburg": {"latencyMs": 205.936226}, + "London": {"latencyMs": 16.251122}, + "Los Angeles": {"latencyMs": 143.256902}, + "Madrid": {"latencyMs": 34.075967}, + "Miami": {"latencyMs": 121.53117900000001}, + "Nairobi": {"latencyMs": 161.74606}, + "New York City": {"latencyMs": 91.71567399999999}, + "Nuremberg": {"latencyMs": 18.849486}, + "Paris": {"latencyMs": 18.236261}, + "San Francisco": {"latencyMs": 152.87620800000002}, + "Seattle": {"latencyMs": 145.93487}, + "Tokyo": {"latencyMs": 234.836671}, + "Toronto": {"latencyMs": 120.34217199999999}, + "Warsaw": {"latencyMs": 28.136067} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:57Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:57Z", + "hostname": "t-reauth-foreign", + "id": "{device:t-reauth-foreign}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:00Z", + "machineKey": "{machine:t-reauth-foreign}", + "name": "t-reauth-foreign.tail78f774.ts.net", + "nodeId": "{device:t-reauth-foreign}", + "nodeKey": "{nodekey:17}", + "oauthClientId": "{key:K6}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16d8c12ef5349d0e142b1a95d98a60196bc7241e2ab7f580d88c7747e646e0ca", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 6104 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K6}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:59:56Z", + "description": "tscap-saasprobe K6", + "expires": "2026-10-17T18:59:56Z", + "expirySeconds": 3600, + "id": "{key:K6}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:59:57Z", + "userId": "{user:odin}" + }, + "offset_ms": 6123 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 6140 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 7689980535642349, + "StableID": "nSuLqRko3321CNTRL", + "Name": "t-reauth-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f637a739da8c234b9abf75b53ab88ec7c9774c03fa1a1561e3fab0dea0fafa2e", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "AllowedIPs": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "Endpoints": [ + "192.0.2.1:43826", + "198.51.100.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-reauth-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 45164}, + {"Proto": "peerapi6", "Port": 45164} + ]}, + "Created": "2026-10-17T17:59:56.54013545Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-reauth-foreign", + "ComputedNameWithHost": "t-reauth-foreign" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-reauth-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7689980535642349, + "StableID": "nSuLqRko3321CNTRL", + "Name": "t-reauth-foreign.tail78f774.ts.net.", + "User": 7689980535642349, + "Key": "nodekey:f637a739da8c234b9abf75b53ab88ec7c9774c03fa1a1561e3fab0dea0fafa2e", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "AllowedIPs": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "Hostinfo": { + "Hostname": "t-reauth-foreign", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:59:56.54013545Z", + "Tags": ["tag:prod"], + "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": "t-reauth-foreign", + "ComputedNameWithHost": "t-reauth-foreign" + }, + "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:f637a739da8c234b9abf75b53ab88ec7c9774c03fa1a1561e3fab0dea0fafa2e", + "MachineKey": "mkey:ae271fa6b2273e7353c9d85ef0e48e10b9a65d78d83278dee331932dd3dacb79", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "7689980535642349": { + "ID": 7689980535642349, + "LoginName": "t-reauth-foreign.tail78f774.ts.net", + "DisplayName": "t-reauth-foreign" + }} + }, "backend_state": "Running"}}, + "register": {"t-reauth-foreign": [{ + "node_key": "{nodekey:17}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 1836 + }]} + }, { + "name": "t-reauth-foreign-relogin", + "at": "2026-10-17T18:00:04.336867959Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "t-reauth-foreign", + "key": "KU", + "force": true, + "hostname": "t-reauth-foreign", + "offset_ms": 34 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:08Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.87.91.62", "fd7a:115c:a1e0::4428:5b3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:43826", + "192.0.2.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], "latency": { + "Amsterdam": {"latencyMs": 10.652597, "preferred": true}, + "Frankfurt": {"latencyMs": 16.460419}, + "London": {"latencyMs": 15.74557} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:05Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:00:05Z", + "hostname": "t-reauth-foreign", + "id": "{device:t-reauth-foreign#2}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:08Z", + "machineKey": "{machine:t-reauth-foreign}", + "name": "t-reauth-foreign-1.tail78f774.ts.net", + "nodeId": "{device:t-reauth-foreign#2}", + "nodeKey": "{nodekey:18}", + "oauthClientId": "{key:KU}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16d8c12ef5349d0e142b1a95d98a60196bc7241e2ab7f580d88c7747e646e0ca", + "updateAvailable": true, + "user": "thor@example.org" + }, { + "addresses": ["100.122.250.46", "fd7a:115c:a1e0::a028:fa2f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:43826", + "192.0.2.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], "latency": { + "Amsterdam": {"latencyMs": 11.24347, "preferred": true}, + "Ashburn": {"latencyMs": 98.79038399999999}, + "Bengaluru": {"latencyMs": 210.119889}, + "Chicago": {"latencyMs": 113.682805}, + "Dallas": {"latencyMs": 127.186742}, + "Denver": {"latencyMs": 139.456401}, + "Dubai": {"latencyMs": 115.78988899999999}, + "Frankfurt": {"latencyMs": 18.172957}, + "Helsinki": {"latencyMs": 35.10549}, + "Hong Kong": {"latencyMs": 194.894271}, + "Honolulu": {"latencyMs": 198.20891500000002}, + "Johannesburg": {"latencyMs": 205.936226}, + "London": {"latencyMs": 16.251122}, + "Los Angeles": {"latencyMs": 143.256902}, + "Madrid": {"latencyMs": 34.075967}, + "Miami": {"latencyMs": 121.53117900000001}, + "Nairobi": {"latencyMs": 161.74606}, + "New York City": {"latencyMs": 91.71567399999999}, + "Nuremberg": {"latencyMs": 18.849486}, + "Paris": {"latencyMs": 18.236261}, + "San Francisco": {"latencyMs": 152.87620800000002}, + "Seattle": {"latencyMs": 145.93487}, + "Tokyo": {"latencyMs": 234.836671}, + "Toronto": {"latencyMs": 120.34217199999999}, + "Warsaw": {"latencyMs": 28.136067} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:59:57Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:59:57Z", + "hostname": "t-reauth-foreign", + "id": "{device:t-reauth-foreign}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:08Z", + "machineKey": "{machine:t-reauth-foreign}", + "name": "t-reauth-foreign.tail78f774.ts.net", + "nodeId": "{device:t-reauth-foreign}", + "nodeKey": "{nodekey:17}", + "oauthClientId": "{key:K6}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16d8c12ef5349d0e142b1a95d98a60196bc7241e2ab7f580d88c7747e646e0ca", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3733 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KU}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 3750 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3787 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.87.91.62", "fd7a:115c:a1e0::4428:5b3f"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 7689980535642349, + "StableID": "nSuLqRko3321CNTRL", + "Name": "t-reauth-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f637a739da8c234b9abf75b53ab88ec7c9774c03fa1a1561e3fab0dea0fafa2e", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "AllowedIPs": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "Endpoints": [ + "192.0.2.1:43826", + "198.51.100.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-reauth-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 45164}, + {"Proto": "peerapi6", "Port": 45164} + ]}, + "Created": "2026-10-17T17:59:56.54013545Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-reauth-foreign", + "ComputedNameWithHost": "t-reauth-foreign" + }, { + "ID": 8595256763755087, + "StableID": "nQf49apo7A21CNTRL", + "Name": "t-reauth-foreign-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:3e2171a0214940a35cf9fb82abc03da7d75e7b7760a2206ceb95c14744575b3e", + "KeyExpiry": "2027-04-15T18:00:04Z", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "AllowedIPs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "Endpoints": [ + "192.0.2.1:43826", + "198.51.100.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-reauth-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 63507}, + {"Proto": "peerapi6", "Port": 63507} + ]}, + "Created": "2026-10-17T18:00:04.813789431Z", + "Cap": 142, + "Online": true, + "ComputedName": "t-reauth-foreign-1", + "ComputedNameWithHost": "t-reauth-foreign-1 (t-reauth-foreign)" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.87.91.62", "fd7a:115c:a1e0::4428:5b3f"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}, "t-reauth-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.87.91.62", "fd7a:115c:a1e0::4428:5b3f"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8595256763755087, + "StableID": "nQf49apo7A21CNTRL", + "Name": "t-reauth-foreign-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:3e2171a0214940a35cf9fb82abc03da7d75e7b7760a2206ceb95c14744575b3e", + "KeyExpiry": "2027-04-15T18:00:04Z", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "AllowedIPs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "Endpoints": [ + "192.0.2.1:43826", + "198.51.100.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], + "Hostinfo": {"Hostname": "t-reauth-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 45164}, + {"Proto": "peerapi6", "Port": 45164}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:00:04.813789431Z", + "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": "t-reauth-foreign-1", + "ComputedNameWithHost": "t-reauth-foreign-1 (t-reauth-foreign)" + }, + "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:3e2171a0214940a35cf9fb82abc03da7d75e7b7760a2206ceb95c14744575b3e", + "MachineKey": "mkey:ae271fa6b2273e7353c9d85ef0e48e10b9a65d78d83278dee331932dd3dacb79", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 7689980535642349, + "StableID": "nSuLqRko3321CNTRL", + "Name": "t-reauth-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f637a739da8c234b9abf75b53ab88ec7c9774c03fa1a1561e3fab0dea0fafa2e", + "DiscoKey": "discokey:5f69709e1df6ed47e519092526bec0245bec5c675941cd1497ec0ee4059c1241", + "Addresses": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "AllowedIPs": ["100.122.250.46/32", "fd7a:115c:a1e0::a028:fa2f/128"], + "Endpoints": [ + "192.0.2.1:43826", + "198.51.100.1:43826", + "198.51.100.2:43826", + "198.51.100.3:43826" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-reauth-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 45164}, + {"Proto": "peerapi6", "Port": 45164} + ]}, + "Created": "2026-10-17T17:59:56.54013545Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-reauth-foreign", + "ComputedNameWithHost": "t-reauth-foreign" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.87.91.62/32", "fd7a:115c:a1e0::4428:5b3f/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.87.91.62", "fd7a:115c:a1e0::4428:5b3f"], + "DstPorts": [{"IP": "*", "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" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "register": {"t-reauth-foreign": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:18}", + "old_node_key": "{nodekey:17}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-exp-foreign-join", + "at": "2026-10-17T18:00:12.149472759Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-reauth-foreign"}, { + "kind": "api", + "key": "K5", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K5", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:00:16Z", + "description": "tscap-saasprobe K5", + "expires": "2026-10-17T19:00:16Z", + "expirySeconds": 3600, + "id": "{key:K5}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2081 + }, { + "kind": "join", + "node": "t-exp-foreign", + "key": "K5", + "hostname": "t-exp-foreign", + "offset_ms": 4173 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:20Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.104.123.14", "fd7a:115c:a1e0::ea28:7b0f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 13.397642, "preferred": true}, + "Ashburn": {"latencyMs": 98.043511}, + "Bengaluru": {"latencyMs": 143.49893}, + "Chicago": {"latencyMs": 114.366994}, + "Dallas": {"latencyMs": 126.42625}, + "Denver": {"latencyMs": 139.051589}, + "Dubai": {"latencyMs": 116.801603}, + "Frankfurt": {"latencyMs": 19.230193999999997}, + "Helsinki": {"latencyMs": 37.002810999999994}, + "Hong Kong": {"latencyMs": 198.102088}, + "Honolulu": {"latencyMs": 210.280543}, + "Johannesburg": {"latencyMs": 208.824024}, + "London": {"latencyMs": 18.434348}, + "Los Angeles": {"latencyMs": 143.674796}, + "Madrid": {"latencyMs": 35.002126000000004}, + "Miami": {"latencyMs": 121.285197}, + "Nairobi": {"latencyMs": 161.520715}, + "New York City": {"latencyMs": 89.164255}, + "Nuremberg": {"latencyMs": 30.938285999999998}, + "Paris": {"latencyMs": 21.556777}, + "San Francisco": {"latencyMs": 157.293126}, + "Seattle": {"latencyMs": 142.391576}, + "Singapore": {"latencyMs": 224.10439300000002}, + "Tokyo": {"latencyMs": 243.670263}, + "Toronto": {"latencyMs": 120.828042}, + "Warsaw": {"latencyMs": 31.043571999999998} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:16Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:00:16Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:20Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7782 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K5}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:00:16Z", + "description": "tscap-saasprobe K5", + "expires": "2026-10-17T19:00:16Z", + "expirySeconds": 3600, + "id": "{key:K5}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:00:16Z", + "userId": "{user:odin}" + }, + "offset_ms": 7799 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 7815 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Endpoints": [ + "192.0.2.1:52854", + "198.51.100.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-exp-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 4462263958827427, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Hostinfo": { + "Hostname": "t-exp-foreign", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:00:16.476280621Z", + "Tags": ["tag:prod"], + "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": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign" + }, + "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:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "MachineKey": "mkey:958678f7cb9f7086f7fc8270b925b8ebcace08d38c3c1b26da67370fc6f1b21a", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4462263958827427": { + "ID": 4462263958827427, + "LoginName": "t-exp-foreign.tail78f774.ts.net", + "DisplayName": "t-exp-foreign" + }} + }, "backend_state": "Running"}}, + "register": {"t-exp-foreign": [{ + "node_key": "{nodekey:19}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3850 + }]} + }, { + "name": "t-exp-foreign-expire", + "at": "2026-10-17T18:00:23.993092691Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-exp-foreign}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:t-exp-foreign}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.104.123.14", "fd7a:115c:a1e0::ea28:7b0f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 13.397642, "preferred": true}, + "Ashburn": {"latencyMs": 98.043511}, + "Bengaluru": {"latencyMs": 143.49893}, + "Chicago": {"latencyMs": 114.366994}, + "Dallas": {"latencyMs": 126.42625}, + "Denver": {"latencyMs": 139.051589}, + "Dubai": {"latencyMs": 116.801603}, + "Frankfurt": {"latencyMs": 19.230193999999997}, + "Helsinki": {"latencyMs": 37.002810999999994}, + "Hong Kong": {"latencyMs": 198.102088}, + "Honolulu": {"latencyMs": 210.280543}, + "Johannesburg": {"latencyMs": 208.824024}, + "London": {"latencyMs": 18.434348}, + "Los Angeles": {"latencyMs": 143.674796}, + "Madrid": {"latencyMs": 35.002126000000004}, + "Miami": {"latencyMs": 121.285197}, + "Nairobi": {"latencyMs": 161.520715}, + "New York City": {"latencyMs": 89.164255}, + "Nuremberg": {"latencyMs": 30.938285999999998}, + "Paris": {"latencyMs": 21.556777}, + "San Francisco": {"latencyMs": 157.293126}, + "Seattle": {"latencyMs": 142.391576}, + "Singapore": {"latencyMs": 224.10439300000002}, + "Tokyo": {"latencyMs": 243.670263}, + "Toronto": {"latencyMs": 120.828042}, + "Warsaw": {"latencyMs": 31.043571999999998} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:16Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:00:23Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:24Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 19 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-exp-foreign}/key", + "header": {"Content-Type": "application/json"}, + "body": {"keyExpiryDisabled": false}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 37 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-exp-foreign}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2018 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:31Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.104.123.14", "fd7a:115c:a1e0::ea28:7b0f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 13.397642, "preferred": true}, + "Ashburn": {"latencyMs": 98.043511}, + "Bengaluru": {"latencyMs": 143.49893}, + "Chicago": {"latencyMs": 114.366994}, + "Dallas": {"latencyMs": 126.42625}, + "Denver": {"latencyMs": 139.051589}, + "Dubai": {"latencyMs": 116.801603}, + "Frankfurt": {"latencyMs": 19.230193999999997}, + "Helsinki": {"latencyMs": 37.002810999999994}, + "Hong Kong": {"latencyMs": 198.102088}, + "Honolulu": {"latencyMs": 210.280543}, + "Johannesburg": {"latencyMs": 208.824024}, + "London": {"latencyMs": 18.434348}, + "Los Angeles": {"latencyMs": 143.674796}, + "Madrid": {"latencyMs": 35.002126000000004}, + "Miami": {"latencyMs": 121.285197}, + "Nairobi": {"latencyMs": 161.520715}, + "New York City": {"latencyMs": 89.164255}, + "Nuremberg": {"latencyMs": 30.938285999999998}, + "Paris": {"latencyMs": 21.556777}, + "San Francisco": {"latencyMs": 157.293126}, + "Seattle": {"latencyMs": 142.391576}, + "Singapore": {"latencyMs": 224.10439300000002}, + "Tokyo": {"latencyMs": 243.670263}, + "Toronto": {"latencyMs": 120.828042}, + "Warsaw": {"latencyMs": 31.043571999999998} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:16Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:00:27Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:31Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7126 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-exp-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 4462263958827427, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Endpoints": [ + "192.0.2.1:52854", + "198.51.100.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], + "Hostinfo": {"Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Tags": ["tag:prod"], + "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": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign" + }, + "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:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "MachineKey": "mkey:958678f7cb9f7086f7fc8270b925b8ebcace08d38c3c1b26da67370fc6f1b21a", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4462263958827427": { + "ID": 4462263958827427, + "LoginName": "t-exp-foreign.tail78f774.ts.net", + "DisplayName": "t-exp-foreign" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-exp-foreign-delete-key", + "at": "2026-10-17T18:00:35.143565544Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:K5}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:38Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.104.123.14", "fd7a:115c:a1e0::ea28:7b0f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 13.397642, "preferred": true}, + "Ashburn": {"latencyMs": 98.043511}, + "Bengaluru": {"latencyMs": 143.49893}, + "Chicago": {"latencyMs": 114.366994}, + "Dallas": {"latencyMs": 126.42625}, + "Denver": {"latencyMs": 139.051589}, + "Dubai": {"latencyMs": 116.801603}, + "Frankfurt": {"latencyMs": 19.230193999999997}, + "Helsinki": {"latencyMs": 37.002810999999994}, + "Hong Kong": {"latencyMs": 198.102088}, + "Honolulu": {"latencyMs": 210.280543}, + "Johannesburg": {"latencyMs": 208.824024}, + "London": {"latencyMs": 18.434348}, + "Los Angeles": {"latencyMs": 143.674796}, + "Madrid": {"latencyMs": 35.002126000000004}, + "Miami": {"latencyMs": 121.285197}, + "Nairobi": {"latencyMs": 161.520715}, + "New York City": {"latencyMs": 89.164255}, + "Nuremberg": {"latencyMs": 30.938285999999998}, + "Paris": {"latencyMs": 21.556777}, + "San Francisco": {"latencyMs": 157.293126}, + "Seattle": {"latencyMs": 142.391576}, + "Singapore": {"latencyMs": 224.10439300000002}, + "Tokyo": {"latencyMs": 243.670263}, + "Toronto": {"latencyMs": 120.828042}, + "Warsaw": {"latencyMs": 31.043571999999998} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:16Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:00:27Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:38Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3088 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K5}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:00:16Z", + "description": "tscap-saasprobe K5", + "expires": "2026-10-17T19:00:16Z", + "expirySeconds": 3600, + "id": "{key:K5}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:00:16Z", + "userId": "{user:odin}" + }, + "offset_ms": 3106 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3125 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-exp-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 4462263958827427, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Endpoints": [ + "192.0.2.1:52854", + "198.51.100.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], + "Hostinfo": {"Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Tags": ["tag:prod"], + "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": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign" + }, + "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:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "MachineKey": "mkey:958678f7cb9f7086f7fc8270b925b8ebcace08d38c3c1b26da67370fc6f1b21a", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4462263958827427": { + "ID": 4462263958827427, + "LoginName": "t-exp-foreign.tail78f774.ts.net", + "DisplayName": "t-exp-foreign" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-exp-foreign-relogin", + "at": "2026-10-17T18:00:42.292504628Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "t-exp-foreign", + "key": "KU", + "force": true, + "hostname": "t-exp-foreign", + "offset_ms": 18 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:46Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.118.92.97", "fd7a:115c:a1e0::1e28:5c62"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 12.356403, "preferred": true}, + "Frankfurt": {"latencyMs": 17.106956}, + "London": {"latencyMs": 16.638748} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:43Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:00:43Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign#2}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:46Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign-1.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign#2}", + "nodeKey": "{nodekey:20}", + "oauthClientId": "{key:KU}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "thor@example.org" + }, { + "addresses": ["100.104.123.14", "fd7a:115c:a1e0::ea28:7b0f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52854", + "192.0.2.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], "latency": { + "Amsterdam": {"latencyMs": 13.397642, "preferred": true}, + "Ashburn": {"latencyMs": 98.043511}, + "Bengaluru": {"latencyMs": 143.49893}, + "Chicago": {"latencyMs": 114.366994}, + "Dallas": {"latencyMs": 126.42625}, + "Denver": {"latencyMs": 139.051589}, + "Dubai": {"latencyMs": 116.801603}, + "Frankfurt": {"latencyMs": 19.230193999999997}, + "Helsinki": {"latencyMs": 37.002810999999994}, + "Hong Kong": {"latencyMs": 198.102088}, + "Honolulu": {"latencyMs": 210.280543}, + "Johannesburg": {"latencyMs": 208.824024}, + "London": {"latencyMs": 18.434348}, + "Los Angeles": {"latencyMs": 143.674796}, + "Madrid": {"latencyMs": 35.002126000000004}, + "Miami": {"latencyMs": 121.285197}, + "Nairobi": {"latencyMs": 161.520715}, + "New York City": {"latencyMs": 89.164255}, + "Nuremberg": {"latencyMs": 30.938285999999998}, + "Paris": {"latencyMs": 21.556777}, + "San Francisco": {"latencyMs": 157.293126}, + "Seattle": {"latencyMs": 142.391576}, + "Singapore": {"latencyMs": 224.10439300000002}, + "Tokyo": {"latencyMs": 243.670263}, + "Toronto": {"latencyMs": 120.828042}, + "Warsaw": {"latencyMs": 31.043571999999998} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:16Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:00:27Z", + "hostname": "t-exp-foreign", + "id": "{device:t-exp-foreign}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:46Z", + "machineKey": "{machine:t-exp-foreign}", + "name": "t-exp-foreign.tail78f774.ts.net", + "nodeId": "{device:t-exp-foreign}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:5884f21e65fde2355ab61f50d60dfa7b39125adf785a7836915e18ab91582992", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3622 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KU}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 3641 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3661 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.118.92.97", "fd7a:115c:a1e0::1e28:5c62"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign", + "Expired": true + }, { + "ID": 225337307330802, + "StableID": "n7ZcDHE4m211CNTRL", + "Name": "t-exp-foreign-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:2798940128b7294892ec3c9ac42120715f9f2e6dee906f4eb0ed76da1e365c61", + "KeyExpiry": "2027-04-15T18:00:42Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "AllowedIPs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "Endpoints": [ + "192.0.2.1:52854", + "198.51.100.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 36454}, + {"Proto": "peerapi6", "Port": 36454} + ]}, + "Created": "2026-10-17T18:00:42.739619177Z", + "Cap": 142, + "Online": true, + "ComputedName": "t-exp-foreign-1", + "ComputedNameWithHost": "t-exp-foreign-1 (t-exp-foreign)" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.118.92.97", "fd7a:115c:a1e0::1e28:5c62"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}, "t-exp-foreign": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.118.92.97", "fd7a:115c:a1e0::1e28:5c62"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 225337307330802, + "StableID": "n7ZcDHE4m211CNTRL", + "Name": "t-exp-foreign-1.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:2798940128b7294892ec3c9ac42120715f9f2e6dee906f4eb0ed76da1e365c61", + "KeyExpiry": "2027-04-15T18:00:42Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "AllowedIPs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "Endpoints": [ + "192.0.2.1:52854", + "198.51.100.1:52854", + "198.51.100.2:52854", + "198.51.100.3:52854" + ], + "Hostinfo": {"Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:00:42.739619177Z", + "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": "t-exp-foreign-1", + "ComputedNameWithHost": "t-exp-foreign-1 (t-exp-foreign)" + }, + "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:2798940128b7294892ec3c9ac42120715f9f2e6dee906f4eb0ed76da1e365c61", + "MachineKey": "mkey:958678f7cb9f7086f7fc8270b925b8ebcace08d38c3c1b26da67370fc6f1b21a", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 4462263958827427, + "StableID": "ncfijE7yqb11CNTRL", + "Name": "t-exp-foreign.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:72ff984fe5ab168a515a60c5463d7e0624ceb8c1730a5c2b4a3a9385eaa87b0e", + "KeyExpiry": "2026-10-17T18:00:27Z", + "DiscoKey": "discokey:253fd7085f95f3915a9a9272d0f4468d4d1eed57742e8756f75cdee5bee5ab17", + "Addresses": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "AllowedIPs": ["100.104.123.14/32", "fd7a:115c:a1e0::ea28:7b0f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-exp-foreign", "Services": [ + {"Proto": "peerapi4", "Port": 52912}, + {"Proto": "peerapi6", "Port": 52912} + ]}, + "Created": "2026-10-17T18:00:16.476280621Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-exp-foreign", + "ComputedNameWithHost": "t-exp-foreign", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.118.92.97/32", "fd7a:115c:a1e0::1e28:5c62/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.118.92.97", "fd7a:115c:a1e0::1e28:5c62"], + "DstPorts": [{"IP": "*", "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" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "register": {"t-exp-foreign": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:20}", + "old_node_key": "{nodekey:19}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "k-node-join", + "at": "2026-10-17T18:00:49.979792301Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-exp-foreign"}, { + "kind": "api", + "key": "KS", + "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 KS", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:00:54Z", + "description": "tscap-saasprobe KS", + "expires": "2026-10-17T19:00:54Z", + "expirySeconds": 3600, + "id": "{key:KS}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 2062 + }, { + "kind": "join", + "node": "k-node", + "key": "KS", + "hostname": "k-node", + "offset_ms": 4161 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.92.182.58", "fd7a:115c:a1e0::5928:b63b"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:46296", + "192.0.2.1:46296", + "198.51.100.2:46296", + "198.51.100.3:46296" + ], "latency": { + "Amsterdam": {"latencyMs": 20.879515, "preferred": true}, + "Ashburn": {"latencyMs": 96.243107}, + "Bengaluru": {"latencyMs": 222.69381099999998}, + "Chicago": {"latencyMs": 116.897382}, + "Dallas": {"latencyMs": 126.536529}, + "Denver": {"latencyMs": 137.951172}, + "Dubai": {"latencyMs": 116.893104}, + "Frankfurt": {"latencyMs": 23.869613}, + "Helsinki": {"latencyMs": 40.975003}, + "Hong Kong": {"latencyMs": 200.95127}, + "Honolulu": {"latencyMs": 232.292193}, + "Johannesburg": {"latencyMs": 184.816612}, + "London": {"latencyMs": 21.235554}, + "Los Angeles": {"latencyMs": 145.584346}, + "Madrid": {"latencyMs": 40.362225}, + "Miami": {"latencyMs": 121.80237}, + "Nairobi": {"latencyMs": 166.340352}, + "New York City": {"latencyMs": 92.62111900000001}, + "Nuremberg": {"latencyMs": 37.404389}, + "Paris": {"latencyMs": 24.194197}, + "San Francisco": {"latencyMs": 162.81159200000002}, + "Seattle": {"latencyMs": 147.33714700000002}, + "Tokyo": {"latencyMs": 237.629216}, + "Toronto": {"latencyMs": 120.733045}, + "Warsaw": {"latencyMs": 34.161587} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:00:54Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:00:54Z", + "hostname": "k-node", + "id": "{device:k-node}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:00:58Z", + "machineKey": "{machine:k-node}", + "name": "k-node.tail78f774.ts.net", + "nodeId": "{device:k-node}", + "nodeKey": "{nodekey:21}", + "oauthClientId": "{key:KS}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:a1c0f899a140684ecb7428627754c488a6a82af4c41260e44b8ad6bfcfb97d73", + "updateAvailable": true, + "user": "thor@example.org" + }, { + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:00:58Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7773 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KS}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:00:54Z", + "description": "tscap-saasprobe KS", + "expires": "2026-10-17T19:00:54Z", + "expirySeconds": 3600, + "id": "{key:KS}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:00:54Z", + "userId": "{user:thor}" + }, + "offset_ms": 7791 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 7810 + }], + "captures": {"k-node": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.92.182.58", "fd7a:115c:a1e0::5928:b63b"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2446447297962030, + "StableID": "nZCqFH217L11CNTRL", + "Name": "k-node.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:9317d549ab2d88d6367e2719da7c8a7d0daa0fa4f735b6aaccc1edf3599cb63a", + "KeyExpiry": "2027-04-15T18:00:54Z", + "DiscoKey": "discokey:01f6e6107ac26fb9a38ac4eab6f9e147e50c616f7131645ee2c6eee07bf60c4a", + "Addresses": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "AllowedIPs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "Hostinfo": { + "Hostname": "k-node", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:00:54.276747555Z", + "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": "k-node", + "ComputedNameWithHost": "k-node" + }, + "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:9317d549ab2d88d6367e2719da7c8a7d0daa0fa4f735b6aaccc1edf3599cb63a", + "MachineKey": "mkey:398865344ce3694ebee226c8d2152390ab26bcf46240bca1c9e9dc3562e19257", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.92.182.58", "fd7a:115c:a1e0::5928:b63b"], + "DstPorts": [{"IP": "*", "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" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}, "obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.92.182.58", "fd7a:115c:a1e0::5928:b63b"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 2446447297962030, + "StableID": "nZCqFH217L11CNTRL", + "Name": "k-node.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:9317d549ab2d88d6367e2719da7c8a7d0daa0fa4f735b6aaccc1edf3599cb63a", + "KeyExpiry": "2027-04-15T18:00:54Z", + "DiscoKey": "discokey:01f6e6107ac26fb9a38ac4eab6f9e147e50c616f7131645ee2c6eee07bf60c4a", + "Addresses": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "AllowedIPs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "Endpoints": [ + "192.0.2.1:46296", + "198.51.100.1:46296", + "198.51.100.2:46296", + "198.51.100.3:46296" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "k-node", "Services": [ + {"Proto": "peerapi4", "Port": 56906}, + {"Proto": "peerapi6", "Port": 56906} + ]}, + "Created": "2026-10-17T18:00:54.276747555Z", + "Cap": 142, + "Online": true, + "ComputedName": "k-node", + "ComputedNameWithHost": "k-node" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.92.182.58/32", "fd7a:115c:a1e0::5928:b63b/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.92.182.58", "fd7a:115c:a1e0::5928:b63b"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "register": {"k-node": [{ + "node_key": "{nodekey:21}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 4020 + }]} + }, { + "name": "t-eph-join", + "at": "2026-10-17T18:01:01.817949548Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "k-node"}, { + "kind": "api", + "key": "K7", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, "description": "tscap-saasprobe K7", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, + "created": "2026-10-17T18:01:04Z", + "description": "tscap-saasprobe K7", + "expires": "2026-10-17T19:01:04Z", + "expirySeconds": 3600, + "id": "{key:K7}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 61 + }, { + "kind": "join", + "node": "t-eph", + "key": "K7", + "hostname": "t-eph", + "offset_ms": 2173 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:08Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.106.75.32", "fd7a:115c:a1e0::9928:4b21"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60745", + "192.0.2.1:60745", + "198.51.100.2:60745", + "198.51.100.3:60745" + ], "latency": { + "Amsterdam": {"latencyMs": 16.218184, "preferred": true}, + "Ashburn": {"latencyMs": 95.40322800000001}, + "Bengaluru": {"latencyMs": 158.147617}, + "Chicago": {"latencyMs": 120.18849800000001}, + "Dallas": {"latencyMs": 129.54226}, + "Denver": {"latencyMs": 139.33228}, + "Dubai": {"latencyMs": 117.208304}, + "Frankfurt": {"latencyMs": 22.423803999999997}, + "Helsinki": {"latencyMs": 41.945684}, + "Hong Kong": {"latencyMs": 201.857565}, + "Honolulu": {"latencyMs": 210.49734}, + "Johannesburg": {"latencyMs": 183.33058}, + "London": {"latencyMs": 21.042669}, + "Los Angeles": {"latencyMs": 145.242076}, + "Madrid": {"latencyMs": 40.53822}, + "Miami": {"latencyMs": 124.353352}, + "Nairobi": {"latencyMs": 181.723732}, + "New York City": {"latencyMs": 95.410873}, + "Nuremberg": {"latencyMs": 31.508833}, + "Paris": {"latencyMs": 24.801108999999997}, + "San Francisco": {"latencyMs": 159.734943}, + "Seattle": {"latencyMs": 149.543168}, + "Tokyo": {"latencyMs": 249.929169}, + "Toronto": {"latencyMs": 119.733166}, + "Warsaw": {"latencyMs": 33.319277} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:01:04Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:01:04Z", + "hostname": "t-eph", + "id": "{device:t-eph}", + "isEphemeral": true, + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:08Z", + "machineKey": "{machine:t-eph}", + "name": "t-eph.tail78f774.ts.net", + "nodeId": "{device:t-eph}", + "nodeKey": "{nodekey:22}", + "oauthClientId": "{key:K7}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:ci"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:813ffd5684af7f8b2d9b05d9283aef1521f207cda24bd46a3787635d22fd8c4e", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5815 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K7}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, + "created": "2026-10-17T18:01:04Z", + "description": "tscap-saasprobe K7", + "expires": "2026-10-17T19:01:04Z", + "expirySeconds": 3600, + "id": "{key:K7}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:01:04Z", + "userId": "{user:odin}" + }, + "offset_ms": 5836 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 5856 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 3771831608150364, + "StableID": "nMFYBzcGTW11CNTRL", + "Name": "t-eph.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "DiscoKey": "discokey:db84e01fcc81c1bb37894ac2d346b7eb2a4a3da7d872ce73bb9fda8e07865072", + "Addresses": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "AllowedIPs": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "Endpoints": [ + "192.0.2.1:60745", + "198.51.100.1:60745", + "198.51.100.2:60745", + "198.51.100.3:60745" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-eph", "Services": [ + {"Proto": "peerapi4", "Port": 41442}, + {"Proto": "peerapi6", "Port": 41442} + ]}, + "Created": "2026-10-17T18:01:04.128847336Z", + "Cap": 142, + "Tags": ["tag:ci"], + "Online": true, + "ComputedName": "t-eph", + "ComputedNameWithHost": "t-eph" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-eph": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3771831608150364, + "StableID": "nMFYBzcGTW11CNTRL", + "Name": "t-eph.tail78f774.ts.net.", + "User": 3771831608150364, + "Key": "nodekey:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "DiscoKey": "discokey:db84e01fcc81c1bb37894ac2d346b7eb2a4a3da7d872ce73bb9fda8e07865072", + "Addresses": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "AllowedIPs": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "Hostinfo": { + "Hostname": "t-eph", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:01:04.128847336Z", + "Tags": ["tag:ci"], + "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": "t-eph", + "ComputedNameWithHost": "t-eph" + }, + "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:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "MachineKey": "mkey:da6792c4d949d18e94d05074ab97c07fea0e111662c7c11f4903d74a4c9c0938", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "3771831608150364": { + "ID": 3771831608150364, + "LoginName": "t-eph.tail78f774.ts.net", + "DisplayName": "t-eph" + }} + }, "backend_state": "Running"}}, + "register": {"t-eph": [{ + "node_key": "{nodekey:22}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 2182 + }]} + }, { + "name": "t-eph-spent-foreign-key", + "at": "2026-10-17T18:01:11.701668685Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "t-eph", + "key": "KS", + "hostname": "t-eph", + "offset_ms": 17 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:16Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.106.75.32", "fd7a:115c:a1e0::9928:4b21"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60745", + "192.0.2.1:60745", + "198.51.100.2:60745", + "198.51.100.3:60745" + ], "latency": { + "Amsterdam": {"latencyMs": 11.647701999999999, "preferred": true}, + "Frankfurt": {"latencyMs": 16.060290000000002}, + "London": {"latencyMs": 15.731851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:01:04Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:01:04Z", + "hostname": "t-eph", + "id": "{device:t-eph}", + "isEphemeral": true, + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:16Z", + "machineKey": "{machine:t-eph}", + "name": "t-eph.tail78f774.ts.net", + "nodeId": "{device:t-eph}", + "nodeKey": "{nodekey:22}", + "oauthClientId": "{key:K7}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:ci"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:813ffd5684af7f8b2d9b05d9283aef1521f207cda24bd46a3787635d22fd8c4e", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4392 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:KS}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:00:54Z", + "description": "tscap-saasprobe KS", + "expires": "2026-10-17T19:00:54Z", + "expirySeconds": 3600, + "id": "{key:KS}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:00:54Z", + "userId": "{user:thor}" + }, + "offset_ms": 4411 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 4447 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 3771831608150364, + "StableID": "nMFYBzcGTW11CNTRL", + "Name": "t-eph.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "DiscoKey": "discokey:db84e01fcc81c1bb37894ac2d346b7eb2a4a3da7d872ce73bb9fda8e07865072", + "Addresses": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "AllowedIPs": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "Endpoints": [ + "192.0.2.1:60745", + "198.51.100.1:60745", + "198.51.100.2:60745", + "198.51.100.3:60745" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-eph", "Services": [ + {"Proto": "peerapi4", "Port": 41442}, + {"Proto": "peerapi6", "Port": 41442} + ]}, + "Created": "2026-10-17T18:01:04.128847336Z", + "Cap": 142, + "Tags": ["tag:ci"], + "Online": true, + "ComputedName": "t-eph", + "ComputedNameWithHost": "t-eph" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-eph": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3771831608150364, + "StableID": "nMFYBzcGTW11CNTRL", + "Name": "t-eph.tail78f774.ts.net.", + "User": 3771831608150364, + "Key": "nodekey:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "DiscoKey": "discokey:db84e01fcc81c1bb37894ac2d346b7eb2a4a3da7d872ce73bb9fda8e07865072", + "Addresses": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "AllowedIPs": ["100.106.75.32/32", "fd7a:115c:a1e0::9928:4b21/128"], + "Endpoints": [ + "192.0.2.1:60745", + "198.51.100.1:60745", + "198.51.100.2:60745", + "198.51.100.3:60745" + ], + "Hostinfo": {"Hostname": "t-eph", "Services": [ + {"Proto": "peerapi4", "Port": 41442}, + {"Proto": "peerapi6", "Port": 41442}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:01:04.128847336Z", + "Tags": ["tag:ci"], + "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": "t-eph", + "ComputedNameWithHost": "t-eph" + }, + "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:487ac2a16f2f98b067a2cf5aa1a6809258acf05271c9eef5fdccfc54992a4b20", + "MachineKey": "mkey:da6792c4d949d18e94d05074ab97c07fea0e111662c7c11f4903d74a4c9c0938", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "3771831608150364": { + "ID": 3771831608150364, + "LoginName": "t-eph.tail78f774.ts.net", + "DisplayName": "t-eph" + }} + }, "backend_state": "Running"}}, + "register": {"t-eph": [{ + "node_key": "{nodekey:22}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-eph-logout", + "at": "2026-10-17T18:01:20.178132646Z", + "result": "observed", + "actions": [ + {"kind": "cli", "node": "t-eph", "args": ["logout"], "exit": 0}, + {"kind": "wait", "args": ["5s"], "offset_ms": 64}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:28Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8159 + } + ], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-eph": {"backend_state": "NeedsLogin"}}, + "register": {"t-eph": [{ + "node_key": "{nodekey:22}", + "node_key_expired": true, + "machine_authorized": true + }]} + }, { + "name": "t-logout-join", + "at": "2026-10-17T18:01:32.364638061Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-eph"}, { + "kind": "api", + "key": "K9", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K9", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:01:32Z", + "description": "tscap-saasprobe K9", + "expires": "2026-10-17T19:01:32Z", + "expirySeconds": 3600, + "id": "{key:K9}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 50 + }, { + "kind": "join", + "node": "t-logout", + "key": "K9", + "hostname": "t-logout", + "offset_ms": 220 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:36Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.72.236.44", "fd7a:115c:a1e0::4228:ec2d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42663", + "192.0.2.1:42663", + "198.51.100.2:42663", + "198.51.100.3:42663" + ], "latency": { + "Amsterdam": {"latencyMs": 12.066198, "preferred": true}, + "Ashburn": {"latencyMs": 102.04700799999999}, + "Bengaluru": {"latencyMs": 151.970263}, + "Chicago": {"latencyMs": 118.175904}, + "Dallas": {"latencyMs": 129.75409299999998}, + "Denver": {"latencyMs": 140.45590199999998}, + "Dubai": {"latencyMs": 119.27135299999999}, + "Frankfurt": {"latencyMs": 21.615499}, + "Helsinki": {"latencyMs": 38.328082}, + "Hong Kong": {"latencyMs": 196.851193}, + "Honolulu": {"latencyMs": 225.964561}, + "Johannesburg": {"latencyMs": 175.22373299999998}, + "London": {"latencyMs": 18.691202}, + "Los Angeles": {"latencyMs": 147.424297}, + "Madrid": {"latencyMs": 62.96803500000001}, + "Miami": {"latencyMs": 122.18978899999999}, + "Nairobi": {"latencyMs": 177.453016}, + "New York City": {"latencyMs": 86.146887}, + "Nuremberg": {"latencyMs": 26.153699}, + "Paris": {"latencyMs": 19.959008}, + "San Francisco": {"latencyMs": 157.568035}, + "Seattle": {"latencyMs": 146.353172}, + "Tokyo": {"latencyMs": 248.005065}, + "Toronto": {"latencyMs": 122.661292}, + "Warsaw": {"latencyMs": 31.322895000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:01:33Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:01:33Z", + "hostname": "t-logout", + "id": "{device:t-logout}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:36Z", + "machineKey": "{machine:t-logout}", + "name": "t-logout.tail78f774.ts.net", + "nodeId": "{device:t-logout}", + "nodeKey": "{nodekey:23}", + "oauthClientId": "{key:K9}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3fe7339e0429275cb1c8a94bf2f042668b455c8f49b45d247d82fd406d848d7a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3836 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K9}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:01:32Z", + "description": "tscap-saasprobe K9", + "expires": "2026-10-17T19:01:32Z", + "expirySeconds": 3600, + "id": "{key:K9}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:01:33Z", + "userId": "{user:odin}" + }, + "offset_ms": 3857 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3872 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 5911784517561066, + "StableID": "nFHzrAZTAo11CNTRL", + "Name": "t-logout.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:63c4c31c3af63f2f03b80b947bd7fed45cca08810c1d9c8f194abec04248ec2c", + "DiscoKey": "discokey:32fde108b5894e5418fd93aa29ea786d8d6ad6f417a9cf97419783de518c232d", + "Addresses": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "AllowedIPs": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "Endpoints": [ + "192.0.2.1:42663", + "198.51.100.1:42663", + "198.51.100.2:42663", + "198.51.100.3:42663" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-logout", "Services": [ + {"Proto": "peerapi4", "Port": 54633}, + {"Proto": "peerapi6", "Port": 54633} + ]}, + "Created": "2026-10-17T18:01:32.732058093Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-logout", + "ComputedNameWithHost": "t-logout" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-logout": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5911784517561066, + "StableID": "nFHzrAZTAo11CNTRL", + "Name": "t-logout.tail78f774.ts.net.", + "User": 5911784517561066, + "Key": "nodekey:63c4c31c3af63f2f03b80b947bd7fed45cca08810c1d9c8f194abec04248ec2c", + "DiscoKey": "discokey:32fde108b5894e5418fd93aa29ea786d8d6ad6f417a9cf97419783de518c232d", + "Addresses": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "AllowedIPs": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "Hostinfo": { + "Hostname": "t-logout", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:01:32.732058093Z", + "Tags": ["tag:prod"], + "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": "t-logout", + "ComputedNameWithHost": "t-logout" + }, + "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:63c4c31c3af63f2f03b80b947bd7fed45cca08810c1d9c8f194abec04248ec2c", + "MachineKey": "mkey:d06f3f30095ab818c7cddcefcea942d3e8f76c8a4a3f40ced555e743c6813a76", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "5911784517561066": { + "ID": 5911784517561066, + "LoginName": "t-logout.tail78f774.ts.net", + "DisplayName": "t-logout" + }} + }, "backend_state": "Running"}}, + "register": {"t-logout": [{ + "node_key": "{nodekey:23}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-logout-logout", + "at": "2026-10-17T18:01:40.272253505Z", + "result": "observed", + "actions": [ + {"kind": "cli", "node": "t-logout", "args": ["logout"], "exit": 0}, + {"kind": "wait", "args": ["5s"], "offset_ms": 61}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:48Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.72.236.44", "fd7a:115c:a1e0::4228:ec2d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42663", + "192.0.2.1:42663", + "198.51.100.2:42663", + "198.51.100.3:42663" + ], "latency": { + "Amsterdam": {"latencyMs": 12.066198, "preferred": true}, + "Ashburn": {"latencyMs": 102.04700799999999}, + "Bengaluru": {"latencyMs": 151.970263}, + "Chicago": {"latencyMs": 118.175904}, + "Dallas": {"latencyMs": 129.75409299999998}, + "Denver": {"latencyMs": 140.45590199999998}, + "Dubai": {"latencyMs": 119.27135299999999}, + "Frankfurt": {"latencyMs": 21.615499}, + "Helsinki": {"latencyMs": 38.328082}, + "Hong Kong": {"latencyMs": 196.851193}, + "Honolulu": {"latencyMs": 225.964561}, + "Johannesburg": {"latencyMs": 175.22373299999998}, + "London": {"latencyMs": 18.691202}, + "Los Angeles": {"latencyMs": 147.424297}, + "Madrid": {"latencyMs": 62.96803500000001}, + "Miami": {"latencyMs": 122.18978899999999}, + "Nairobi": {"latencyMs": 177.453016}, + "New York City": {"latencyMs": 86.146887}, + "Nuremberg": {"latencyMs": 26.153699}, + "Paris": {"latencyMs": 19.959008}, + "San Francisco": {"latencyMs": 157.568035}, + "Seattle": {"latencyMs": 146.353172}, + "Tokyo": {"latencyMs": 248.005065}, + "Toronto": {"latencyMs": 122.661292}, + "Warsaw": {"latencyMs": 31.322895000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:01:33Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-16T18:01:40Z", + "hostname": "t-logout", + "id": "{device:t-logout}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:01:48Z", + "machineKey": "{machine:t-logout}", + "name": "t-logout.tail78f774.ts.net", + "nodeId": "{device:t-logout}", + "nodeKey": "{nodekey:23}", + "oauthClientId": "{key:K9}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3fe7339e0429275cb1c8a94bf2f042668b455c8f49b45d247d82fd406d848d7a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8143 + } + ], + "captures": { + "obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 5911784517561066, + "StableID": "nFHzrAZTAo11CNTRL", + "Name": "t-logout.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:63c4c31c3af63f2f03b80b947bd7fed45cca08810c1d9c8f194abec04248ec2c", + "KeyExpiry": "2026-10-16T18:01:40Z", + "DiscoKey": "discokey:32fde108b5894e5418fd93aa29ea786d8d6ad6f417a9cf97419783de518c232d", + "Addresses": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "AllowedIPs": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-logout", "Services": [ + {"Proto": "peerapi4", "Port": 54633}, + {"Proto": "peerapi6", "Port": 54633} + ]}, + "Created": "2026-10-17T18:01:32.732058093Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-logout", + "ComputedNameWithHost": "t-logout", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, + "t-logout": {"backend_state": "NeedsLogin"} + }, + "register": {"t-logout": [{ + "node_key": "{nodekey:23}", + "node_key_expired": true, + "machine_authorized": true + }]} + }, { + "name": "t-logout-relogin", + "at": "2026-10-17T18:01:52.444360513Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "t-logout", + "key": "K9", + "hostname": "t-logout", + "offset_ms": 20 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:01:56Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.72.236.44", "fd7a:115c:a1e0::4228:ec2d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:42663", + "192.0.2.1:42663", + "198.51.100.2:42663", + "198.51.100.3:42663" + ], "latency": { + "Amsterdam": {"latencyMs": 12.066198, "preferred": true}, + "Ashburn": {"latencyMs": 102.04700799999999}, + "Bengaluru": {"latencyMs": 151.970263}, + "Chicago": {"latencyMs": 118.175904}, + "Dallas": {"latencyMs": 129.75409299999998}, + "Denver": {"latencyMs": 140.45590199999998}, + "Dubai": {"latencyMs": 119.27135299999999}, + "Frankfurt": {"latencyMs": 21.615499}, + "Helsinki": {"latencyMs": 38.328082}, + "Hong Kong": {"latencyMs": 196.851193}, + "Honolulu": {"latencyMs": 225.964561}, + "Johannesburg": {"latencyMs": 175.22373299999998}, + "London": {"latencyMs": 18.691202}, + "Los Angeles": {"latencyMs": 147.424297}, + "Madrid": {"latencyMs": 62.96803500000001}, + "Miami": {"latencyMs": 122.18978899999999}, + "Nairobi": {"latencyMs": 177.453016}, + "New York City": {"latencyMs": 86.146887}, + "Nuremberg": {"latencyMs": 26.153699}, + "Paris": {"latencyMs": 19.959008}, + "San Francisco": {"latencyMs": 157.568035}, + "Seattle": {"latencyMs": 146.353172}, + "Tokyo": {"latencyMs": 248.005065}, + "Toronto": {"latencyMs": 122.661292}, + "Warsaw": {"latencyMs": 31.322895000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:01:33Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-16T18:01:40Z", + "hostname": "t-logout", + "id": "{device:t-logout}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:01:56Z", + "machineKey": "{machine:t-logout}", + "name": "t-logout.tail78f774.ts.net", + "nodeId": "{device:t-logout}", + "nodeKey": "{nodekey:23}", + "oauthClientId": "{key:K9}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3fe7339e0429275cb1c8a94bf2f042668b455c8f49b45d247d82fd406d848d7a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3242 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K9}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:01:32Z", + "description": "tscap-saasprobe K9", + "expires": "2026-10-17T19:01:32Z", + "expirySeconds": 3600, + "id": "{key:K9}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:01:33Z", + "userId": "{user:odin}" + }, + "offset_ms": 3259 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3275 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 5911784517561066, + "StableID": "nFHzrAZTAo11CNTRL", + "Name": "t-logout.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:63c4c31c3af63f2f03b80b947bd7fed45cca08810c1d9c8f194abec04248ec2c", + "KeyExpiry": "2026-10-16T18:01:40Z", + "DiscoKey": "discokey:32fde108b5894e5418fd93aa29ea786d8d6ad6f417a9cf97419783de518c232d", + "Addresses": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "AllowedIPs": ["100.72.236.44/32", "fd7a:115c:a1e0::4228:ec2d/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-logout", "Services": [ + {"Proto": "peerapi4", "Port": 54633}, + {"Proto": "peerapi6", "Port": 54633} + ]}, + "Created": "2026-10-17T18:01:32.732058093Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-logout", + "ComputedNameWithHost": "t-logout", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-logout": { + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:K9} not valid" + }}, + "register": {"t-logout": [ + { + "node_key": "{nodekey:24}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:K9} not valid"}, + { + "node_key": "{nodekey:25}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:K9} not valid", "offset_ms": 4555}, + {"node_key": "{nodekey:26}", "offset_ms": 4555} + ]} + }, { + "name": "t-eph-del-join", + "at": "2026-10-17T18:01:59.745775688Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-logout"}, { + "kind": "api", + "key": "K8", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, "description": "tscap-saasprobe K8", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, + "created": "2026-10-17T18:02:02Z", + "description": "tscap-saasprobe K8", + "expires": "2026-10-17T19:02:02Z", + "expirySeconds": 3600, + "id": "{key:K8}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 62 + }, { + "kind": "join", + "node": "t-eph-del", + "key": "K8", + "hostname": "t-eph-del", + "offset_ms": 2173 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:02:06Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.102.181.100", "fd7a:115c:a1e0::cd28:b565"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60116", + "192.0.2.1:60116", + "198.51.100.2:60116", + "198.51.100.3:60116" + ], "latency": { + "Amsterdam": {"latencyMs": 12.299723, "preferred": true}, + "Ashburn": {"latencyMs": 99.65167799999999}, + "Bengaluru": {"latencyMs": 140.886623}, + "Chicago": {"latencyMs": 116.050823}, + "Dallas": {"latencyMs": 125.31372499999999}, + "Denver": {"latencyMs": 137.947285}, + "Dubai": {"latencyMs": 116.19987900000001}, + "Frankfurt": {"latencyMs": 16.254767}, + "Helsinki": {"latencyMs": 36.86173}, + "Hong Kong": {"latencyMs": 197.39795199999998}, + "Honolulu": {"latencyMs": 205.13452700000002}, + "Johannesburg": {"latencyMs": 174.421708}, + "London": {"latencyMs": 14.82896}, + "Los Angeles": {"latencyMs": 145.01705}, + "Madrid": {"latencyMs": 35.25963}, + "Miami": {"latencyMs": 119.51745799999999}, + "Nairobi": {"latencyMs": 160.668943}, + "New York City": {"latencyMs": 87.50608199999999}, + "Nuremberg": {"latencyMs": 27.605007}, + "Paris": {"latencyMs": 16.110383}, + "San Francisco": {"latencyMs": 159.792757}, + "Seattle": {"latencyMs": 143.525566}, + "Tokyo": {"latencyMs": 239.25653699999998}, + "Toronto": {"latencyMs": 119.871968}, + "Warsaw": {"latencyMs": 27.319116} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:02:02Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:02:02Z", + "hostname": "t-eph-del", + "id": "{device:t-eph-del}", + "isEphemeral": true, + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:02:06Z", + "machineKey": "{machine:t-eph-del}", + "name": "t-eph-del.tail78f774.ts.net", + "nodeId": "{device:t-eph-del}", + "nodeKey": "{nodekey:27}", + "oauthClientId": "{key:K8}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:ci"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:7a099125dc5461357b542c6c4bce6dfd6b2323d2b76ef11174bd89f856d2c35e", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5784 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K8}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, + "created": "2026-10-17T18:02:02Z", + "description": "tscap-saasprobe K8", + "expires": "2026-10-17T19:02:02Z", + "expirySeconds": 3600, + "id": "{key:K8}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:02:02Z", + "userId": "{user:odin}" + }, + "offset_ms": 5801 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 5818 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4133107043705733, + "StableID": "nWhwHPitGZ11CNTRL", + "Name": "t-eph-del.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "DiscoKey": "discokey:414913323d4caf841f02a56efccab94afe7af4c8ec58139f13c19a97d26e2542", + "Addresses": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "AllowedIPs": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "Endpoints": [ + "192.0.2.1:60116", + "198.51.100.1:60116", + "198.51.100.2:60116", + "198.51.100.3:60116" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-eph-del", "Services": [ + {"Proto": "peerapi4", "Port": 37180}, + {"Proto": "peerapi6", "Port": 37180} + ]}, + "Created": "2026-10-17T18:02:02.065278312Z", + "Cap": 142, + "Tags": ["tag:ci"], + "Online": true, + "ComputedName": "t-eph-del", + "ComputedNameWithHost": "t-eph-del" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-eph-del": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4133107043705733, + "StableID": "nWhwHPitGZ11CNTRL", + "Name": "t-eph-del.tail78f774.ts.net.", + "User": 4133107043705733, + "Key": "nodekey:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "DiscoKey": "discokey:414913323d4caf841f02a56efccab94afe7af4c8ec58139f13c19a97d26e2542", + "Addresses": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "AllowedIPs": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "Hostinfo": { + "Hostname": "t-eph-del", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:02:02.065278312Z", + "Tags": ["tag:ci"], + "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": "t-eph-del", + "ComputedNameWithHost": "t-eph-del" + }, + "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:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "MachineKey": "mkey:9285636c7342d12d8710727a2e9b797e3537adf116761eb0bfb9841d551c9919", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4133107043705733": { + "ID": 4133107043705733, + "LoginName": "t-eph-del.tail78f774.ts.net", + "DisplayName": "t-eph-del" + }} + }, "backend_state": "Running"}}, + "register": {"t-eph-del": [{ + "node_key": "{nodekey:27}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 2254 + }]} + }, { + "name": "t-eph-del-delete-key", + "at": "2026-10-17T18:02:09.597273363Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:K8}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:02:13Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.102.181.100", "fd7a:115c:a1e0::cd28:b565"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60116", + "192.0.2.1:60116", + "198.51.100.2:60116", + "198.51.100.3:60116" + ], "latency": { + "Amsterdam": {"latencyMs": 12.299723, "preferred": true}, + "Ashburn": {"latencyMs": 99.65167799999999}, + "Bengaluru": {"latencyMs": 140.886623}, + "Chicago": {"latencyMs": 116.050823}, + "Dallas": {"latencyMs": 125.31372499999999}, + "Denver": {"latencyMs": 137.947285}, + "Dubai": {"latencyMs": 116.19987900000001}, + "Frankfurt": {"latencyMs": 16.254767}, + "Helsinki": {"latencyMs": 36.86173}, + "Hong Kong": {"latencyMs": 197.39795199999998}, + "Honolulu": {"latencyMs": 205.13452700000002}, + "Johannesburg": {"latencyMs": 174.421708}, + "London": {"latencyMs": 14.82896}, + "Los Angeles": {"latencyMs": 145.01705}, + "Madrid": {"latencyMs": 35.25963}, + "Miami": {"latencyMs": 119.51745799999999}, + "Nairobi": {"latencyMs": 160.668943}, + "New York City": {"latencyMs": 87.50608199999999}, + "Nuremberg": {"latencyMs": 27.605007}, + "Paris": {"latencyMs": 16.110383}, + "San Francisco": {"latencyMs": 159.792757}, + "Seattle": {"latencyMs": 143.525566}, + "Tokyo": {"latencyMs": 239.25653699999998}, + "Toronto": {"latencyMs": 119.871968}, + "Warsaw": {"latencyMs": 27.319116} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:02:02Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:02:02Z", + "hostname": "t-eph-del", + "id": "{device:t-eph-del}", + "isEphemeral": true, + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:02:13Z", + "machineKey": "{machine:t-eph-del}", + "name": "t-eph-del.tail78f774.ts.net", + "nodeId": "{device:t-eph-del}", + "nodeKey": "{nodekey:27}", + "oauthClientId": "{key:K8}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:ci"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:7a099125dc5461357b542c6c4bce6dfd6b2323d2b76ef11174bd89f856d2c35e", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3120 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K8}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": true, + "preauthorized": true, + "reusable": false, + "tags": ["tag:ci"] + }}}, + "created": "2026-10-17T18:02:02Z", + "description": "tscap-saasprobe K8", + "expires": "2026-10-17T19:02:02Z", + "expirySeconds": 3600, + "id": "{key:K8}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:02:02Z", + "userId": "{user:odin}" + }, + "offset_ms": 3137 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T17:59:37Z", + "description": "tscap-saasprobe KU", + "expires": "2026-10-17T18:59:37Z", + "expirySeconds": 3600, + "id": "{key:KU}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3153 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4133107043705733, + "StableID": "nWhwHPitGZ11CNTRL", + "Name": "t-eph-del.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "DiscoKey": "discokey:414913323d4caf841f02a56efccab94afe7af4c8ec58139f13c19a97d26e2542", + "Addresses": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "AllowedIPs": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "Endpoints": [ + "192.0.2.1:60116", + "198.51.100.1:60116", + "198.51.100.2:60116", + "198.51.100.3:60116" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-eph-del", "Services": [ + {"Proto": "peerapi4", "Port": 37180}, + {"Proto": "peerapi6", "Port": 37180} + ]}, + "Created": "2026-10-17T18:02:02.065278312Z", + "Cap": 142, + "Tags": ["tag:ci"], + "Online": true, + "ComputedName": "t-eph-del", + "ComputedNameWithHost": "t-eph-del" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-eph-del": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4133107043705733, + "StableID": "nWhwHPitGZ11CNTRL", + "Name": "t-eph-del.tail78f774.ts.net.", + "User": 4133107043705733, + "Key": "nodekey:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "DiscoKey": "discokey:414913323d4caf841f02a56efccab94afe7af4c8ec58139f13c19a97d26e2542", + "Addresses": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "AllowedIPs": ["100.102.181.100/32", "fd7a:115c:a1e0::cd28:b565/128"], + "Hostinfo": { + "Hostname": "t-eph-del", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:02:02.065278312Z", + "Tags": ["tag:ci"], + "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": "t-eph-del", + "ComputedNameWithHost": "t-eph-del" + }, + "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:008bf15c10021957dedb95a91aefd00dcb8ddfe0db10de4169f18e68cd66b564", + "MachineKey": "mkey:9285636c7342d12d8710727a2e9b797e3537adf116761eb0bfb9841d551c9919", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4133107043705733": { + "ID": 4133107043705733, + "LoginName": "t-eph-del.tail78f774.ts.net", + "DisplayName": "t-eph-del" + }} + }, "backend_state": "Running"}} + }, { + "name": "t-eph-del-logout", + "at": "2026-10-17T18:02:16.77751216Z", + "result": "observed", + "actions": [ + {"kind": "cli", "node": "t-eph-del", "args": ["logout"], "exit": 0}, + {"kind": "wait", "args": ["5s"], "offset_ms": 62}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:02:25Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8144 + } + ], + "captures": { + "obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, + "t-eph-del": {"backend_state": "NeedsLogin"} + }, + "register": {"t-eph-del": [{ + "node_key": "{nodekey:27}", + "node_key_expired": true, + "machine_authorized": true + }]} + }, { + "name": "teardown", + "at": "2026-10-17T18:02:28.949176389Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-eph-del"}] + }] +} diff --git a/hscontrol/servertest/testdata/steps/reauth-owner.hujson b/hscontrol/servertest/testdata/steps/reauth-owner.hujson new file mode 100644 index 000000000..c5efcea18 --- /dev/null +++ b/hscontrol/servertest/testdata/steps/reauth-owner.hujson @@ -0,0 +1,6188 @@ +// reauth-owner +// +// User devices logging in again with their owner's keys, before and after an admin tags them. +// +// Nodes with filter rules: 1 of 1 +// Steps: 12 +// Captured at: 2026-10-17T18:30:15Z +// tool version: saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8 +// schema version: 1 +{ + "schema_version": 1, + "test_id": "reauth-owner", + "description": "User devices logging in again with their owner's keys, before and after an admin tags them.", + "captured_at": "2026-10-17T18:30:15.596932219Z", + "tool_version": "saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.97.61.24", + "ipv6": "fd7a:115c:a1e0::e528:3d19", + "routable_ips": [], + "approved_routes": [] + }, "u-renew": { + "hostname": "u-renew", + "tags": [], + "ipv4": "100.113.231.51", + "ipv6": "fd7a:115c:a1e0::7b28:e734", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-tagged": { + "hostname": "u-tagged", + "tags": [], + "ipv4": "100.107.24.63", + "ipv6": "fd7a:115c:a1e0::8a28:1840", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-tagged-reauth": { + "hostname": "u-tagged-reauth", + "tags": [], + "ipv4": "100.84.41.65", + "ipv6": "fd7a:115c:a1e0::5428:2942", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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": {"6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "obs": 6295641548930282, + "u-renew": 5414291862205480, + "u-tagged": 3697068357503443, + "u-tagged-reauth": 5745800674583286 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T18:30:15.596958188Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T18:30:20Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T19:30:20Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2003 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4116 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3403 + }]} + }, { + "name": "u-renew-join", + "at": "2026-10-17T18:30:24.260713726Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "KO1", + "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 KO1", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:30:24Z", + "description": "tscap-saasprobe KO1", + "expires": "2026-10-17T19:30:24Z", + "expirySeconds": 3600, + "id": "{key:KO1}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 18 + }, { + "kind": "join", + "node": "u-renew", + "key": "KO1", + "hostname": "u-renew", + "offset_ms": 162 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:30:28Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41252", + "192.0.2.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], "latency": { + "Amsterdam": {"latencyMs": 13.700256, "preferred": true}, + "Ashburn": {"latencyMs": 97.065401}, + "Bengaluru": {"latencyMs": 217.341208}, + "Chicago": {"latencyMs": 113.729935}, + "Dallas": {"latencyMs": 127.38862}, + "Denver": {"latencyMs": 135.691489}, + "Dubai": {"latencyMs": 116.170024}, + "Frankfurt": {"latencyMs": 16.805037}, + "Helsinki": {"latencyMs": 36.501433999999996}, + "Hong Kong": {"latencyMs": 195.714518}, + "Honolulu": {"latencyMs": 198.46981399999999}, + "Johannesburg": {"latencyMs": 193.379972}, + "London": {"latencyMs": 16.252518000000002}, + "Los Angeles": {"latencyMs": 143.273018}, + "Madrid": {"latencyMs": 35.041351999999996}, + "Miami": {"latencyMs": 119.34469899999999}, + "Nairobi": {"latencyMs": 163.47747}, + "New York City": {"latencyMs": 88.40725400000001}, + "Nuremberg": {"latencyMs": 22.789395}, + "Paris": {"latencyMs": 20.964584000000002}, + "San Francisco": {"latencyMs": 153.53315800000001}, + "Seattle": {"latencyMs": 151.24420999999998}, + "Singapore": {"latencyMs": 193.96039000000002}, + "Tokyo": {"latencyMs": 243.696872}, + "Toronto": {"latencyMs": 120.08595199999999}, + "Warsaw": {"latencyMs": 31.320109} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:25Z", + "hostname": "u-renew", + "id": "{device:u-renew}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:30:28Z", + "machineKey": "{machine:u-renew}", + "name": "u-renew.tail78f774.ts.net", + "nodeId": "{device:u-renew}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:ccda140102eff1dce5a192033bf41691f1b5315007ff23ae66742ffec9e7d860", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3767 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:30:24Z", + "description": "tscap-saasprobe KO1", + "expires": "2026-10-17T19:30:24Z", + "expirySeconds": 3600, + "id": "{key:KO1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:30:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 3786 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3802 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Endpoints": [ + "192.0.2.1:41252", + "198.51.100.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-renew", "Services": [ + {"Proto": "peerapi4", "Port": 57160}, + {"Proto": "peerapi6", "Port": 57160} + ]}, + "Created": "2026-10-17T18:30:24.560150929Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-renew", + "ComputedNameWithHost": "u-renew" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-renew": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Hostinfo": { + "Hostname": "u-renew", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:30:24.560150929Z", + "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": "u-renew", + "ComputedNameWithHost": "u-renew" + }, + "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:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "MachineKey": "mkey:9d94c89fbf6539a3f9e948125f3cedd31e153fe23da1762f3c46e76763e3306a", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-renew": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "u-renew-relogin", + "at": "2026-10-17T18:30:32.092890467Z", + "result": "observed", + "actions": [{"kind": "wait", "args": ["1m0s"]}, { + "kind": "relogin", + "node": "u-renew", + "key": "KO1", + "hostname": "u-renew", + "offset_ms": 60011 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:31:36Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41252", + "192.0.2.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], "latency": { + "Amsterdam": {"latencyMs": 9.963972, "preferred": true}, + "Frankfurt": {"latencyMs": 15.206984}, + "London": {"latencyMs": 15.094944} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:25Z", + "hostname": "u-renew", + "id": "{device:u-renew}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:31:36Z", + "machineKey": "{machine:u-renew}", + "name": "u-renew.tail78f774.ts.net", + "nodeId": "{device:u-renew}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:ccda140102eff1dce5a192033bf41691f1b5315007ff23ae66742ffec9e7d860", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 64366 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:30:24Z", + "description": "tscap-saasprobe KO1", + "expires": "2026-10-17T19:30:24Z", + "expirySeconds": 3600, + "id": "{key:KO1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:30:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 64381 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 64398 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Endpoints": [ + "192.0.2.1:41252", + "198.51.100.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-renew", "Services": [ + {"Proto": "peerapi4", "Port": 57160}, + {"Proto": "peerapi6", "Port": 57160} + ]}, + "Created": "2026-10-17T18:30:24.560150929Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-renew", + "ComputedNameWithHost": "u-renew" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-renew": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Endpoints": [ + "192.0.2.1:41252", + "198.51.100.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], + "Hostinfo": {"Hostname": "u-renew", "Services": [ + {"Proto": "peerapi4", "Port": 57160}, + {"Proto": "peerapi6", "Port": 57160}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:24.560150929Z", + "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": "u-renew", + "ComputedNameWithHost": "u-renew" + }, + "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:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "MachineKey": "mkey:9d94c89fbf6539a3f9e948125f3cedd31e153fe23da1762f3c46e76763e3306a", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-renew": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 59907 + }]} + }, { + "name": "u-renew-relogin-force", + "at": "2026-10-17T18:31:40.517256453Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-renew", + "key": "KO1", + "force": true, + "hostname": "u-renew" + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:31:44Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41252", + "192.0.2.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], "latency": { + "Amsterdam": {"latencyMs": 9.963972, "preferred": true}, + "Frankfurt": {"latencyMs": 15.206984}, + "London": {"latencyMs": 15.094944} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:25Z", + "hostname": "u-renew", + "id": "{device:u-renew}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:31:44Z", + "machineKey": "{machine:u-renew}", + "name": "u-renew.tail78f774.ts.net", + "nodeId": "{device:u-renew}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:KO1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:ccda140102eff1dce5a192033bf41691f1b5315007ff23ae66742ffec9e7d860", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3534 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:30:24Z", + "description": "tscap-saasprobe KO1", + "expires": "2026-10-17T19:30:24Z", + "expirySeconds": 3600, + "id": "{key:KO1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:30:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 3550 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3565 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Endpoints": [ + "192.0.2.1:41252", + "198.51.100.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-renew", "Services": [ + {"Proto": "peerapi4", "Port": 57160}, + {"Proto": "peerapi6", "Port": 57160} + ]}, + "Created": "2026-10-17T18:30:24.560150929Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-renew", + "ComputedNameWithHost": "u-renew" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-renew": { + "packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5414291862205480, + "StableID": "nwtWVSG9Hj11CNTRL", + "Name": "u-renew.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "KeyExpiry": "2027-04-15T18:30:24Z", + "DiscoKey": "discokey:bebc6b81d4d53d54137c1c1724a88360390a533ede8d3e1c63737133300fe52f", + "Addresses": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "AllowedIPs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "Endpoints": [ + "192.0.2.1:41252", + "198.51.100.1:41252", + "198.51.100.2:41252", + "198.51.100.3:41252" + ], + "Hostinfo": {"Hostname": "u-renew", "Services": [ + {"Proto": "peerapi4", "Port": 57160}, + {"Proto": "peerapi6", "Port": 57160}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:24.560150929Z", + "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": "u-renew", + "ComputedNameWithHost": "u-renew" + }, + "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:399dfef3bcbe9867433fa03e0347b004215d3bd795e0f5e34a91b2137b31e733", + "MachineKey": "mkey:9d94c89fbf6539a3f9e948125f3cedd31e153fe23da1762f3c46e76763e3306a", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.113.231.51/32", "fd7a:115c:a1e0::7b28:e734/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.113.231.51", "fd7a:115c:a1e0::7b28:e734"], + "DstPorts": [{"IP": "*", "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" + }} + }, + "backend_state": "Running", + "err_message": "invalid key: API key {key:KO1} not valid" + }}, + "register": {"u-renew": [ + { + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, + { + "node_key": "{nodekey:3}", + "old_node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:KO1} not valid"}, + { + "node_key": "{nodekey:4}", + "old_node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:KO1} not valid", "offset_ms": 4482}, + {"node_key": "{nodekey:5}", "old_node_key": "{nodekey:2}", "offset_ms": 5482} + ]} + }, { + "name": "u-tagged-join", + "at": "2026-10-17T18:31:48.104169818Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-renew"}, { + "kind": "api", + "key": "KO2", + "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 KO2", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:31:50Z", + "description": "tscap-saasprobe KO2", + "expires": "2026-10-17T19:31:50Z", + "expirySeconds": 3600, + "id": "{key:KO2}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 56 + }, { + "kind": "join", + "node": "u-tagged", + "key": "KO2", + "hostname": "u-tagged", + "offset_ms": 2151 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:31:54Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48003", + "192.0.2.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], "latency": { + "Amsterdam": {"latencyMs": 13.561622, "preferred": true}, + "Ashburn": {"latencyMs": 96.71501}, + "Bengaluru": {"latencyMs": 146.095903}, + "Chicago": {"latencyMs": 112.671509}, + "Dallas": {"latencyMs": 127.10609000000001}, + "Denver": {"latencyMs": 135.601778}, + "Dubai": {"latencyMs": 117.135135}, + "Frankfurt": {"latencyMs": 17.358074000000002}, + "Helsinki": {"latencyMs": 35.664709}, + "Hong Kong": {"latencyMs": 197.565405}, + "Honolulu": {"latencyMs": 196.292762}, + "Johannesburg": {"latencyMs": 170.571689}, + "London": {"latencyMs": 17.284114}, + "Los Angeles": {"latencyMs": 143.0554}, + "Madrid": {"latencyMs": 34.497091}, + "Miami": {"latencyMs": 118.533193}, + "Nairobi": {"latencyMs": 173.593026}, + "New York City": {"latencyMs": 88.275926}, + "Nuremberg": {"latencyMs": 26.912748}, + "Paris": {"latencyMs": 19.923316}, + "San Francisco": {"latencyMs": 155.67887199999998}, + "Seattle": {"latencyMs": 149.757195}, + "Singapore": {"latencyMs": 169.688992}, + "Tokyo": {"latencyMs": 240.318046}, + "Toronto": {"latencyMs": 119.657728}, + "Warsaw": {"latencyMs": 28.122277} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:31:50Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:31:50Z", + "hostname": "u-tagged", + "id": "{device:u-tagged}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:31:54Z", + "machineKey": "{machine:u-tagged}", + "name": "u-tagged.tail78f774.ts.net", + "nodeId": "{device:u-tagged}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:41c1fb994dfbad782c7d8a77a8ba1ac0f4ea3978ae8e9c2ee0c803f8b402d55a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5753 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:31:50Z", + "description": "tscap-saasprobe KO2", + "expires": "2026-10-17T19:31:50Z", + "expirySeconds": 3600, + "id": "{key:KO2}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:31:50Z", + "userId": "{user:odin}" + }, + "offset_ms": 5772 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 5789 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Hostinfo": { + "Hostname": "u-tagged", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:31:50.374347099Z", + "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": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }, + "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:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "MachineKey": "mkey:aa7dff6b7460a6b335244a16508cd3f215e1177649698ccd960d713c698c9b7f", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-tagged": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 1895 + }]} + }, { + "name": "u-tagged-admin-tags", + "at": "2026-10-17T18:31:57.921243736Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:u-tagged}/tags", + "header": {"Content-Type": "application/json"}, + "body": {"tags": ["tag:prod"]}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:01Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48003", + "192.0.2.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], "latency": { + "Amsterdam": {"latencyMs": 13.561622, "preferred": true}, + "Ashburn": {"latencyMs": 96.71501}, + "Bengaluru": {"latencyMs": 146.095903}, + "Chicago": {"latencyMs": 112.671509}, + "Dallas": {"latencyMs": 127.10609000000001}, + "Denver": {"latencyMs": 135.601778}, + "Dubai": {"latencyMs": 117.135135}, + "Frankfurt": {"latencyMs": 17.358074000000002}, + "Helsinki": {"latencyMs": 35.664709}, + "Hong Kong": {"latencyMs": 197.565405}, + "Honolulu": {"latencyMs": 196.292762}, + "Johannesburg": {"latencyMs": 170.571689}, + "London": {"latencyMs": 17.284114}, + "Los Angeles": {"latencyMs": 143.0554}, + "Madrid": {"latencyMs": 34.497091}, + "Miami": {"latencyMs": 118.533193}, + "Nairobi": {"latencyMs": 173.593026}, + "New York City": {"latencyMs": 88.275926}, + "Nuremberg": {"latencyMs": 26.912748}, + "Paris": {"latencyMs": 19.923316}, + "San Francisco": {"latencyMs": 155.67887199999998}, + "Seattle": {"latencyMs": 149.757195}, + "Singapore": {"latencyMs": 169.688992}, + "Tokyo": {"latencyMs": 240.318046}, + "Toronto": {"latencyMs": 119.657728}, + "Warsaw": {"latencyMs": 28.122277} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:31:50Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:31:50Z", + "hostname": "u-tagged", + "id": "{device:u-tagged}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:01Z", + "machineKey": "{machine:u-tagged}", + "name": "u-tagged.tail78f774.ts.net", + "nodeId": "{device:u-tagged}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:41c1fb994dfbad782c7d8a77a8ba1ac0f4ea3978ae8e9c2ee0c803f8b402d55a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3090 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 3697068357503443, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "Hostinfo": {"Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Tags": ["tag:prod"], + "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": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }, + "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:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "MachineKey": "mkey:aa7dff6b7460a6b335244a16508cd3f215e1177649698ccd960d713c698c9b7f", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "3697068357503443": { + "ID": 3697068357503443, + "LoginName": "u-tagged.tail78f774.ts.net", + "DisplayName": "u-tagged" + }} + }, "backend_state": "Running"}} + }, { + "name": "u-tagged-relogin", + "at": "2026-10-17T18:32:05.033289293Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-tagged", + "key": "KO2", + "hostname": "u-tagged", + "offset_ms": 16 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:09Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48003", + "192.0.2.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], "latency": { + "Amsterdam": {"latencyMs": 13.561622, "preferred": true}, + "Ashburn": {"latencyMs": 96.71501}, + "Bengaluru": {"latencyMs": 146.095903}, + "Chicago": {"latencyMs": 112.671509}, + "Dallas": {"latencyMs": 127.10609000000001}, + "Denver": {"latencyMs": 135.601778}, + "Dubai": {"latencyMs": 117.135135}, + "Frankfurt": {"latencyMs": 17.358074000000002}, + "Helsinki": {"latencyMs": 35.664709}, + "Hong Kong": {"latencyMs": 197.565405}, + "Honolulu": {"latencyMs": 196.292762}, + "Johannesburg": {"latencyMs": 170.571689}, + "London": {"latencyMs": 17.284114}, + "Los Angeles": {"latencyMs": 143.0554}, + "Madrid": {"latencyMs": 34.497091}, + "Miami": {"latencyMs": 118.533193}, + "Nairobi": {"latencyMs": 173.593026}, + "New York City": {"latencyMs": 88.275926}, + "Nuremberg": {"latencyMs": 26.912748}, + "Paris": {"latencyMs": 19.923316}, + "San Francisco": {"latencyMs": 155.67887199999998}, + "Seattle": {"latencyMs": 149.757195}, + "Singapore": {"latencyMs": 169.688992}, + "Tokyo": {"latencyMs": 240.318046}, + "Toronto": {"latencyMs": 119.657728}, + "Warsaw": {"latencyMs": 28.122277} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:31:50Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:31:50Z", + "hostname": "u-tagged", + "id": "{device:u-tagged}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:09Z", + "machineKey": "{machine:u-tagged}", + "name": "u-tagged.tail78f774.ts.net", + "nodeId": "{device:u-tagged}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:41c1fb994dfbad782c7d8a77a8ba1ac0f4ea3978ae8e9c2ee0c803f8b402d55a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4364 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:31:50Z", + "description": "tscap-saasprobe KO2", + "expires": "2026-10-17T19:31:50Z", + "expirySeconds": 3600, + "id": "{key:KO2}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:31:50Z", + "userId": "{user:odin}" + }, + "offset_ms": 4383 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 4402 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 3697068357503443, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "Hostinfo": {"Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Tags": ["tag:prod"], + "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": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }, + "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:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "MachineKey": "mkey:aa7dff6b7460a6b335244a16508cd3f215e1177649698ccd960d713c698c9b7f", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "3697068357503443": { + "ID": 3697068357503443, + "LoginName": "u-tagged.tail78f774.ts.net", + "DisplayName": "u-tagged" + }} + }, "backend_state": "Running"}}, + "register": {"u-tagged": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "u-tagged-reusable-key", + "at": "2026-10-17T18:32:13.464239642Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "KR", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": true, "tags": null} + }}, "description": "tscap-saasprobe KR", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 16 + }, { + "kind": "relogin", + "node": "u-tagged", + "key": "KR", + "hostname": "u-tagged", + "offset_ms": 34 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:18Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.107.24.63", "fd7a:115c:a1e0::8a28:1840"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48003", + "192.0.2.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], "latency": { + "Amsterdam": {"latencyMs": 11.070208999999998, "preferred": true}, + "Frankfurt": {"latencyMs": 15.856184999999998}, + "London": {"latencyMs": 15.748313999999999} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:31:50Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:31:50Z", + "hostname": "u-tagged", + "id": "{device:u-tagged}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:18Z", + "machineKey": "{machine:u-tagged}", + "name": "u-tagged.tail78f774.ts.net", + "nodeId": "{device:u-tagged}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:KO2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:41c1fb994dfbad782c7d8a77a8ba1ac0f4ea3978ae8e9c2ee0c803f8b402d55a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4383 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4398 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4414 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3697068357503443, + "StableID": "nQTjjZiQsV11CNTRL", + "Name": "u-tagged.tail78f774.ts.net.", + "User": 3697068357503443, + "Key": "nodekey:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "KeyExpiry": "2027-04-15T18:31:50Z", + "DiscoKey": "discokey:dfdefb290d9b89034be443a8dad5f4113ea566cdc88bd4aa44c65a80acd66b0e", + "Addresses": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "AllowedIPs": ["100.107.24.63/32", "fd7a:115c:a1e0::8a28:1840/128"], + "Endpoints": [ + "192.0.2.1:48003", + "198.51.100.1:48003", + "198.51.100.2:48003", + "198.51.100.3:48003" + ], + "Hostinfo": {"Hostname": "u-tagged", "Services": [ + {"Proto": "peerapi4", "Port": 51383}, + {"Proto": "peerapi6", "Port": 51383}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:31:50.374347099Z", + "Tags": ["tag:prod"], + "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": "u-tagged", + "ComputedNameWithHost": "u-tagged" + }, + "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:68c7c08fba4d3334f7f0f3a3226c1e6c671efd85948b9ec83b8ed0e88aeb183f", + "MachineKey": "mkey:aa7dff6b7460a6b335244a16508cd3f215e1177649698ccd960d713c698c9b7f", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "3697068357503443": { + "ID": 3697068357503443, + "LoginName": "u-tagged.tail78f774.ts.net", + "DisplayName": "u-tagged" + }} + }, "backend_state": "Running"}}, + "register": {"u-tagged": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "u-tagged-reauth-join", + "at": "2026-10-17T18:32:21.905372246Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-tagged"}, { + "kind": "api", + "key": "KO3", + "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 KO3", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:32:24Z", + "description": "tscap-saasprobe KO3", + "expires": "2026-10-17T19:32:24Z", + "expirySeconds": 3600, + "id": "{key:KO3}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 51 + }, { + "kind": "join", + "node": "u-tagged-reauth", + "key": "KO3", + "hostname": "u-tagged-reauth", + "offset_ms": 2162 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:28Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48211", + "192.0.2.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], "latency": { + "Amsterdam": {"latencyMs": 11.284370000000001, "preferred": true}, + "Ashburn": {"latencyMs": 97.032199}, + "Bengaluru": {"latencyMs": 152.010937}, + "Chicago": {"latencyMs": 110.846037}, + "Dallas": {"latencyMs": 125.13412300000002}, + "Denver": {"latencyMs": 136.888015}, + "Dubai": {"latencyMs": 115.48763600000001}, + "Frankfurt": {"latencyMs": 16.628899}, + "Helsinki": {"latencyMs": 35.725645}, + "Hong Kong": {"latencyMs": 194.99213600000002}, + "Honolulu": {"latencyMs": 194.683712}, + "Johannesburg": {"latencyMs": 207.136032}, + "London": {"latencyMs": 16.067479}, + "Los Angeles": {"latencyMs": 142.977494}, + "Madrid": {"latencyMs": 33.816202}, + "Miami": {"latencyMs": 117.857932}, + "Nairobi": {"latencyMs": 161.681048}, + "New York City": {"latencyMs": 89.703058}, + "Nuremberg": {"latencyMs": 21.223031}, + "Paris": {"latencyMs": 18.788192}, + "San Francisco": {"latencyMs": 157.24876600000002}, + "Seattle": {"latencyMs": 150.901017}, + "Singapore": {"latencyMs": 165.440054}, + "Tokyo": {"latencyMs": 240.441883}, + "Toronto": {"latencyMs": 118.91939699999999}, + "Warsaw": {"latencyMs": 28.418232000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:32:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:32:24Z", + "hostname": "u-tagged-reauth", + "id": "{device:u-tagged-reauth}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:28Z", + "machineKey": "{machine:u-tagged-reauth}", + "name": "u-tagged-reauth.tail78f774.ts.net", + "nodeId": "{device:u-tagged-reauth}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:KO3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:d27e71532ea4900f538cb7e247369769ab1c8bc842ff7a6d508f810f1619f1ab", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5769 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KO3}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:32:24Z", + "description": "tscap-saasprobe KO3", + "expires": "2026-10-17T19:32:24Z", + "expirySeconds": 3600, + "id": "{key:KO3}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:32:24Z", + "userId": "{user:odin}" + }, + "offset_ms": 5785 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 5801 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "KeyExpiry": "2027-04-15T18:32:24Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Endpoints": [ + "192.0.2.1:48211", + "198.51.100.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged-reauth", "Services": [ + {"Proto": "peerapi4", "Port": 45459}, + {"Proto": "peerapi6", "Port": 45459} + ]}, + "Created": "2026-10-17T18:32:24.204905157Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged-reauth": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "KeyExpiry": "2027-04-15T18:32:24Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Hostinfo": { + "Hostname": "u-tagged-reauth", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:32:24.204905157Z", + "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": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }, + "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:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "MachineKey": "mkey:c9cd8cbf1402f521740a19585365e24d7666ceeba4ecf2dee09bec7b4ac53220", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-tagged-reauth": [{ + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 2094 + }]} + }, { + "name": "u-tagged-reauth-admin-tags", + "at": "2026-10-17T18:32:31.737804894Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:u-tagged-reauth}/tags", + "header": {"Content-Type": "application/json"}, + "body": {"tags": ["tag:prod"]}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:35Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48211", + "192.0.2.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], "latency": { + "Amsterdam": {"latencyMs": 11.284370000000001, "preferred": true}, + "Ashburn": {"latencyMs": 97.032199}, + "Bengaluru": {"latencyMs": 152.010937}, + "Chicago": {"latencyMs": 110.846037}, + "Dallas": {"latencyMs": 125.13412300000002}, + "Denver": {"latencyMs": 136.888015}, + "Dubai": {"latencyMs": 115.48763600000001}, + "Frankfurt": {"latencyMs": 16.628899}, + "Helsinki": {"latencyMs": 35.725645}, + "Hong Kong": {"latencyMs": 194.99213600000002}, + "Honolulu": {"latencyMs": 194.683712}, + "Johannesburg": {"latencyMs": 207.136032}, + "London": {"latencyMs": 16.067479}, + "Los Angeles": {"latencyMs": 142.977494}, + "Madrid": {"latencyMs": 33.816202}, + "Miami": {"latencyMs": 117.857932}, + "Nairobi": {"latencyMs": 161.681048}, + "New York City": {"latencyMs": 89.703058}, + "Nuremberg": {"latencyMs": 21.223031}, + "Paris": {"latencyMs": 18.788192}, + "San Francisco": {"latencyMs": 157.24876600000002}, + "Seattle": {"latencyMs": 150.901017}, + "Singapore": {"latencyMs": 165.440054}, + "Tokyo": {"latencyMs": 240.441883}, + "Toronto": {"latencyMs": 118.91939699999999}, + "Warsaw": {"latencyMs": 28.418232000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:32:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:32:24Z", + "hostname": "u-tagged-reauth", + "id": "{device:u-tagged-reauth}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:35Z", + "machineKey": "{machine:u-tagged-reauth}", + "name": "u-tagged-reauth.tail78f774.ts.net", + "nodeId": "{device:u-tagged-reauth}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:KO3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:d27e71532ea4900f538cb7e247369769ab1c8bc842ff7a6d508f810f1619f1ab", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3094 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "KeyExpiry": "2027-04-15T18:32:24Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Endpoints": [ + "192.0.2.1:48211", + "198.51.100.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged-reauth", "Services": [ + {"Proto": "peerapi4", "Port": 45459}, + {"Proto": "peerapi6", "Port": 45459} + ]}, + "Created": "2026-10-17T18:32:24.204905157Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged-reauth": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 5745800674583286, + "Key": "nodekey:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "KeyExpiry": "2027-04-15T18:32:24Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Endpoints": [ + "192.0.2.1:48211", + "198.51.100.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], + "Hostinfo": {"Hostname": "u-tagged-reauth", "Services": [ + {"Proto": "peerapi4", "Port": 45459}, + {"Proto": "peerapi6", "Port": 45459}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:32:24.204905157Z", + "Tags": ["tag:prod"], + "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": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }, + "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:f037bd12e9dd8ddd5fe27e9244b3fc856d3a198398341550858f830f54942941", + "MachineKey": "mkey:c9cd8cbf1402f521740a19585365e24d7666ceeba4ecf2dee09bec7b4ac53220", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "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" + }, "5745800674583286": { + "ID": 5745800674583286, + "LoginName": "u-tagged-reauth.tail78f774.ts.net", + "DisplayName": "u-tagged-reauth" + }} + }, "backend_state": "Running"}} + }, { + "name": "u-tagged-reauth-relogin", + "at": "2026-10-17T18:32:38.858386975Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-tagged-reauth", + "key": "KR", + "force": true, + "hostname": "u-tagged-reauth", + "offset_ms": 20 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:36482", + "192.0.2.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], "latency": { + "Amsterdam": {"latencyMs": 13.369135, "preferred": true}, + "Ashburn": {"latencyMs": 97.02686800000001}, + "Bengaluru": {"latencyMs": 153.02666200000002}, + "Chicago": {"latencyMs": 115.48163100000001}, + "Dallas": {"latencyMs": 125.792188}, + "Denver": {"latencyMs": 137.697212}, + "Dubai": {"latencyMs": 115.736396}, + "Frankfurt": {"latencyMs": 16.299940999999997}, + "Helsinki": {"latencyMs": 36.073046999999995}, + "Hong Kong": {"latencyMs": 196.587347}, + "Honolulu": {"latencyMs": 228.226592}, + "Johannesburg": {"latencyMs": 183.391357}, + "London": {"latencyMs": 15.501712000000001}, + "Los Angeles": {"latencyMs": 142.197248}, + "Madrid": {"latencyMs": 33.946405}, + "Miami": {"latencyMs": 120.27486900000001}, + "Nairobi": {"latencyMs": 162.795132}, + "New York City": {"latencyMs": 91.696055}, + "Nuremberg": {"latencyMs": 22.529046}, + "Paris": {"latencyMs": 18.734455}, + "San Francisco": {"latencyMs": 157.682629}, + "Seattle": {"latencyMs": 149.242424}, + "Singapore": {"latencyMs": 193.091772}, + "Tokyo": {"latencyMs": 243.073243}, + "Toronto": {"latencyMs": 117.689567}, + "Warsaw": {"latencyMs": 27.260274000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:30:20Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:30:20Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:32:43Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:f885bcb4512782fa97b04d82ca81e8b146ba2aa7deb24044e2217d41b40e63a1", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:48211", + "192.0.2.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], "latency": { + "Amsterdam": {"latencyMs": 11.284370000000001, "preferred": true}, + "Ashburn": {"latencyMs": 97.032199}, + "Bengaluru": {"latencyMs": 152.010937}, + "Chicago": {"latencyMs": 110.846037}, + "Dallas": {"latencyMs": 125.13412300000002}, + "Denver": {"latencyMs": 136.888015}, + "Dubai": {"latencyMs": 115.48763600000001}, + "Frankfurt": {"latencyMs": 16.628899}, + "Helsinki": {"latencyMs": 35.725645}, + "Hong Kong": {"latencyMs": 194.99213600000002}, + "Honolulu": {"latencyMs": 194.683712}, + "Johannesburg": {"latencyMs": 207.136032}, + "London": {"latencyMs": 16.067479}, + "Los Angeles": {"latencyMs": 142.977494}, + "Madrid": {"latencyMs": 33.816202}, + "Miami": {"latencyMs": 117.857932}, + "Nairobi": {"latencyMs": 161.681048}, + "New York City": {"latencyMs": 89.703058}, + "Nuremberg": {"latencyMs": 21.223031}, + "Paris": {"latencyMs": 18.788192}, + "San Francisco": {"latencyMs": 157.24876600000002}, + "Seattle": {"latencyMs": 150.901017}, + "Singapore": {"latencyMs": 165.440054}, + "Tokyo": {"latencyMs": 240.441883}, + "Toronto": {"latencyMs": 118.91939699999999}, + "Warsaw": {"latencyMs": 28.418232000000003} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:32:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:32:39Z", + "hostname": "u-tagged-reauth", + "id": "{device:u-tagged-reauth}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:32:39Z", + "machineKey": "{machine:u-tagged-reauth}", + "name": "u-tagged-reauth.tail78f774.ts.net", + "nodeId": "{device:u-tagged-reauth}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:KR}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:d27e71532ea4900f538cb7e247369769ab1c8bc842ff7a6d508f810f1619f1ab", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3867 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:KR}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3883 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:32:13Z", + "description": "tscap-saasprobe KR", + "expires": "2026-10-17T19:32:13Z", + "expirySeconds": 3600, + "id": "{key:KR}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3899 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6295641548930282, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "MachineKey": "mkey:9706634c01a4a52c83e476ac643da98f62397932348ec5988983fab6b835ad23", + "Peers": [{ + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:8610aad21d75367301e4ad14481e3e11311cc10d5bdaa2cd5f08e162bd2dcc6b", + "KeyExpiry": "2027-04-15T18:32:39Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Endpoints": [ + "192.0.2.1:48211", + "198.51.100.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-tagged-reauth", "Services": [ + {"Proto": "peerapi4", "Port": 45459}, + {"Proto": "peerapi6", "Port": 45459} + ]}, + "Created": "2026-10-17T18:32:24.204905157Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "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" + }, "6295641548930282": { + "ID": 6295641548930282, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-tagged-reauth": {"packet_filter_rules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 5745800674583286, + "StableID": "ndEV3ZSHsm11CNTRL", + "Name": "u-tagged-reauth.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:8610aad21d75367301e4ad14481e3e11311cc10d5bdaa2cd5f08e162bd2dcc6b", + "KeyExpiry": "2027-04-15T18:32:39Z", + "DiscoKey": "discokey:e6e9ed03dba9e3f221d9e4ccc91df108e973041985a028067e73fe768bcbef04", + "Addresses": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "AllowedIPs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "Endpoints": [ + "192.0.2.1:48211", + "198.51.100.1:48211", + "198.51.100.2:48211", + "198.51.100.3:48211" + ], + "Hostinfo": {"Hostname": "u-tagged-reauth", "Services": [ + {"Proto": "peerapi4", "Port": 45459}, + {"Proto": "peerapi6", "Port": 45459}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:32:24.204905157Z", + "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": "u-tagged-reauth", + "ComputedNameWithHost": "u-tagged-reauth" + }, + "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:8610aad21d75367301e4ad14481e3e11311cc10d5bdaa2cd5f08e162bd2dcc6b", + "MachineKey": "mkey:c9cd8cbf1402f521740a19585365e24d7666ceeba4ecf2dee09bec7b4ac53220", + "Peers": [{ + "ID": 6295641548930282, + "StableID": "nqCWG2qJAr11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:8e5af2191f96695e917a386ce4872674374d1742c92511e12cc59b9ee5613d18", + "DiscoKey": "discokey:a3fa878f27aa1319cd3794c967a46ca919146056d004302494132cfa3f7d6231", + "Addresses": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "AllowedIPs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "Endpoints": [ + "192.0.2.1:36482", + "198.51.100.1:36482", + "198.51.100.2:36482", + "198.51.100.3:36482" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 43245}, + {"Proto": "peerapi6", "Port": 43245} + ]}, + "Created": "2026-10-17T18:30:19.863632613Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.97.61.24/32", "fd7a:115c:a1e0::e528:3d19/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.84.41.65/32", "fd7a:115c:a1e0::5428:2942/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.97.61.24", "fd7a:115c:a1e0::e528:3d19"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.84.41.65", "fd7a:115c:a1e0::5428:2942"], + "DstPorts": [{"IP": "*", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-tagged-reauth": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:8}", + "old_node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "teardown", + "at": "2026-10-17T18:32:46.790270041Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-tagged-reauth"}] + }] +} diff --git a/hscontrol/servertest/testdata/steps/reauth-user.hujson b/hscontrol/servertest/testdata/steps/reauth-user.hujson new file mode 100644 index 000000000..3b040f4ee --- /dev/null +++ b/hscontrol/servertest/testdata/steps/reauth-user.hujson @@ -0,0 +1,25408 @@ +// reauth-user +// +// Same-key and rotated re-authentication of user devices, and one single-use tagged key presented three times. +// +// Nodes with filter rules: 8 of 8 +// Steps: 14 +// Captured at: 2026-10-17T18:35:05Z +// tool version: saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8 +// schema version: 1 +{ + "schema_version": 1, + "test_id": "reauth-user", + "description": "Same-key and rotated re-authentication of user devices, and one single-use tagged key presented three times.", + "captured_at": "2026-10-17T18:35:05.056767344Z", + "tool_version": "saasprobe 02f279ef4f6a350320c6e3c8357af46123ed5dd8", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.93.252.108", + "ipv6": "fd7a:115c:a1e0::c028:fc6d", + "routable_ips": [], + "approved_routes": [] + }, "t-server": { + "hostname": "t-server", + "tags": ["tag:server"], + "ipv4": "100.75.107.56", + "ipv6": "fd7a:115c:a1e0::3628:6b39", + "routable_ips": [], + "approved_routes": [] + }, "u-convert": { + "hostname": "u-convert", + "tags": [], + "ipv4": "100.73.178.112", + "ipv6": "fd7a:115c:a1e0::a728:b271", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-loser-force": { + "hostname": "u-loser-force", + "tags": [], + "ipv4": "100.119.212.24", + "ipv6": "fd7a:115c:a1e0::3f28:d419", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-loser-same": { + "hostname": "u-loser-same", + "tags": [], + "ipv4": "100.121.87.87", + "ipv6": "fd7a:115c:a1e0::c628:5758", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-rotate": { + "hostname": "u-rotate", + "tags": [], + "ipv4": "100.74.116.82", + "ipv6": "fd7a:115c:a1e0::bd28:7453", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-spent": { + "hostname": "u-spent", + "tags": [], + "ipv4": "100.114.193.103", + "ipv6": "fd7a:115c:a1e0::228:c168", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }, "u-valid": { + "hostname": "u-valid", + "tags": [], + "ipv4": "100.98.140.62", + "ipv6": "fd7a:115c:a1e0::9c28:8c3f", + "user": "odin", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], + "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, "backend_state": "Running"}, "u-convert": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 6816112363233601, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "Hostinfo": {"Hostname": "u-convert", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Tags": ["tag:prod"], + "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": "u-convert", + "ComputedNameWithHost": "u-convert" + }, + "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:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "MachineKey": "mkey:a0bd6c962bc4a31140840f70fd70e45500fd935c15627c2022fdcc09daa1f66e", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "6816112363233601": { + "ID": 6816112363233601, + "LoginName": "u-convert.tail78f774.ts.net", + "DisplayName": "u-convert" + }} + }, + "backend_state": "Running" + }, "u-loser-force": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4237155629584988, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "Hostinfo": {"Hostname": "u-loser-force", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Tags": ["tag:prod"], + "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": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, + "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:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "MachineKey": "mkey:474fc408cab4dd14cac26f4c29ff9c4526375ae827d276e3b2067db0ae211e1f", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "4237155629584988": { + "ID": 4237155629584988, + "LoginName": "u-loser-force.tail78f774.ts.net", + "DisplayName": "u-loser-force" + }} + }, + "backend_state": "Running" + }, "u-loser-same": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 3719794019332041, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "Hostinfo": {"Hostname": "u-loser-same", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Tags": ["tag:prod"], + "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": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, + "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:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "MachineKey": "mkey:e1d14879fa0ff3b28db92502f3b498ff629368a63fbdb72d2de128ba5416b565", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "3719794019332041": { + "ID": 3719794019332041, + "LoginName": "u-loser-same.tail78f774.ts.net", + "DisplayName": "u-loser-same" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, + "backend_state": "Running" + }, "u-rotate": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "Hostinfo": {"Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "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": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, + "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:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "MachineKey": "mkey:a2e25b8dcd1abd5155ac9468e026aa7d0c0e9d59c82a6d1d1d27048f8873b051", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "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" + }} + }, "backend_state": "Running"}, "u-spent": { + "packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "Ports": {"First": 0, "Last": 65535}} + ]} + ], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "Hostinfo": {"Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "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": "u-spent", + "ComputedNameWithHost": "u-spent" + }, + "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:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "MachineKey": "mkey:8044faf131abb3a53a34f913f37698b43fcf57dc9880dcfe3a520eedcb97c625", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "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" + }} + }, + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:A-K1} not valid" + }, "u-valid": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "Hostinfo": {"Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "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": "u-valid", + "ComputedNameWithHost": "u-valid" + }, + "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:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "MachineKey": "mkey:9a709409f55120a331e999e28ee34fc2128bf74c2d079c5f0c38a76d6f32be68", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "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" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "obs": 6212833790962056, + "t-server": 8151150853884850, + "u-convert": 6816112363233601, + "u-loser-force": 4237155629584988, + "u-loser-same": 3719794019332041, + "u-rotate": 3052335079622683, + "u-spent": 7472021296957817, + "u-valid": 7001343145842485 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T18:35:05.05679383Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T18:35:09Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T19:35:09Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2004 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4106 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3943 + }]} + }, { + "name": "a0-join", + "at": "2026-10-17T18:35:13.694750142Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "A-Kserver", + "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 A-Kserver", "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-17T18:35:14Z", + "description": "tscap-saasprobe A-Kserver", + "expires": "2026-10-17T19:35:14Z", + "expirySeconds": 3600, + "id": "{key:A-Kserver}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 16 + }, { + "kind": "api", + "key": "A-K1", + "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 A-K1", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:16Z", + "description": "tscap-saasprobe A-K1", + "expires": "2026-10-17T19:35:16Z", + "expirySeconds": 3600, + "id": "{key:A-K1}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 34 + }, { + "kind": "api", + "key": "A-K3", + "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 A-K3", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:18Z", + "description": "tscap-saasprobe A-K3", + "expires": "2026-10-17T19:35:18Z", + "expirySeconds": 3600, + "id": "{key:A-K3}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2036 + }, { + "kind": "api", + "key": "A-K4", + "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 A-K4", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:20Z", + "description": "tscap-saasprobe A-K4", + "expires": "2026-10-17T19:35:20Z", + "expirySeconds": 3600, + "id": "{key:A-K4}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4036 + }, { + "kind": "api", + "key": "A-K5", + "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 A-K5", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:22Z", + "description": "tscap-saasprobe A-K5", + "expires": "2026-10-17T19:35:22Z", + "expirySeconds": 3600, + "id": "{key:A-K5}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 6037 + }, { + "kind": "api", + "key": "A-Kx", + "principal": "user:odin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": { + "create": {"ephemeral": false, "preauthorized": true, "reusable": true, "tags": null} + }}, "description": "tscap-saasprobe A-Kx", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 8041 + }, { + "kind": "join", + "node": "t-server", + "key": "A-Kserver", + "hostname": "t-server", + "offset_ms": 10165 + }, { + "kind": "join", + "node": "u-spent", + "key": "A-K1", + "hostname": "u-spent", + "offset_ms": 10823 + }, { + "kind": "join", + "node": "u-valid", + "key": "A-Kx", + "hostname": "u-valid", + "offset_ms": 11481 + }, { + "kind": "join", + "node": "u-rotate", + "key": "A-Kx", + "hostname": "u-rotate", + "offset_ms": 12144 + }, { + "kind": "join", + "node": "u-convert", + "key": "A-K3", + "hostname": "u-convert", + "offset_ms": 12801 + }, { + "kind": "join", + "node": "u-loser-same", + "key": "A-K4", + "hostname": "u-loser-same", + "offset_ms": 13455 + }, { + "kind": "join", + "node": "u-loser-force", + "key": "A-K5", + "hostname": "u-loser-force", + "offset_ms": 14122 + }, {"kind": "wait", "args": ["1m0s"], "offset_ms": 14666}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 77817 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kserver}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:server"] + }}}, + "created": "2026-10-17T18:35:14Z", + "description": "tscap-saasprobe A-Kserver", + "expires": "2026-10-17T19:35:14Z", + "expirySeconds": 3600, + "id": "{key:A-Kserver}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:24Z", + "userId": "{user:odin}" + }, + "offset_ms": 77835 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:16Z", + "description": "tscap-saasprobe A-K1", + "expires": "2026-10-17T19:35:16Z", + "expirySeconds": 3600, + "id": "{key:A-K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 77850 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kx}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 77866 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K3}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:18Z", + "description": "tscap-saasprobe A-K3", + "expires": "2026-10-17T19:35:18Z", + "expirySeconds": 3600, + "id": "{key:A-K3}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:27Z", + "userId": "{user:odin}" + }, + "offset_ms": 77882 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K4}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:20Z", + "description": "tscap-saasprobe A-K4", + "expires": "2026-10-17T19:35:20Z", + "expirySeconds": 3600, + "id": "{key:A-K4}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:27Z", + "userId": "{user:odin}" + }, + "offset_ms": 77900 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K5}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:22Z", + "description": "tscap-saasprobe A-K5", + "expires": "2026-10-17T19:35:22Z", + "expirySeconds": 3600, + "id": "{key:A-K5}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:28Z", + "userId": "{user:odin}" + }, + "offset_ms": 77916 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 77932 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-convert": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.73.178.112", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::a728:b271", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.73.178.112/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::a728:b271/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "Hostinfo": {"Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "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": "u-convert", + "ComputedNameWithHost": "u-convert" + }, + "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:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "MachineKey": "mkey:a0bd6c962bc4a31140840f70fd70e45500fd935c15627c2022fdcc09daa1f66e", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.73.178.112/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::a728:b271/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.73.178.112", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::a728:b271", "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" + }} + }, "backend_state": "Running"}, "u-loser-force": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.119.212.24", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::3f28:d419", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.119.212.24/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::3f28:d419/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Hostinfo": { + "Hostname": "u-loser-force", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:35:27.955810756Z", + "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": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, + "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:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "MachineKey": "mkey:474fc408cab4dd14cac26f4c29ff9c4526375ae827d276e3b2067db0ae211e1f", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.119.212.24/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::3f28:d419/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.119.212.24", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::3f28:d419", "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" + }} + }, "backend_state": "Running"}, "u-loser-same": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.121.87.87", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::c628:5758", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.121.87.87/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::c628:5758/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "Hostinfo": {"Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "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": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, + "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:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "MachineKey": "mkey:e1d14879fa0ff3b28db92502f3b498ff629368a63fbdb72d2de128ba5416b565", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.121.87.87/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::c628:5758/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.121.87.87", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::c628:5758", "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" + }} + }, "backend_state": "Running"}, "u-rotate": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "Hostinfo": {"Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "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": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, + "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:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "MachineKey": "mkey:a2e25b8dcd1abd5155ac9468e026aa7d0c0e9d59c82a6d1d1d27048f8873b051", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "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" + }} + }, "backend_state": "Running"}, "u-spent": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "Hostinfo": {"Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "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": "u-spent", + "ComputedNameWithHost": "u-spent" + }, + "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:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "MachineKey": "mkey:8044faf131abb3a53a34f913f37698b43fcf57dc9880dcfe3a520eedcb97c625", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "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" + }} + }, "backend_state": "Running"}, "u-valid": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "Hostinfo": {"Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "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": "u-valid", + "ComputedNameWithHost": "u-valid" + }, + "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:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "MachineKey": "mkey:9a709409f55120a331e999e28ee34fc2128bf74c2d079c5f0c38a76d6f32be68", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "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" + }} + }, "backend_state": "Running"}}, + "register": {"t-server": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 9305 + }], "u-convert": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 12305 + }], "u-loser-force": [{ + "node_key": "{nodekey:8}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 13305 + }], "u-loser-same": [{ + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 13305 + }], "u-rotate": [{ + "node_key": "{nodekey:5}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 11305 + }], "u-spent": [{ + "node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 10305 + }], "u-valid": [{ + "node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 11305 + }]} + }, { + "name": "a1-spent-key", + "at": "2026-10-17T18:36:47.703950923Z", + "result": "observed", + "actions": [ + {"kind": "relogin", "node": "u-spent", "key": "A-K1", "hostname": "u-spent"}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:36:52Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4454 + }, + { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:16Z", + "description": "tscap-saasprobe A-K1", + "expires": "2026-10-17T19:35:16Z", + "expirySeconds": 3600, + "id": "{key:A-K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 4475 + }, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4491 + } + ], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-spent": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "Hostinfo": {"Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "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": "u-spent", + "ComputedNameWithHost": "u-spent" + }, + "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:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "MachineKey": "mkey:8044faf131abb3a53a34f913f37698b43fcf57dc9880dcfe3a520eedcb97c625", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-spent": [{ + "node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "a2-valid-key", + "at": "2026-10-17T18:36:58.23737261Z", + "result": "observed", + "actions": [ + {"kind": "relogin", "node": "u-valid", "key": "A-Kx", "hostname": "u-valid"}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:25Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:03Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4445 + }, + { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kx}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4463 + }, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4479 + } + ], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-valid": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "Hostinfo": {"Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "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": "u-valid", + "ComputedNameWithHost": "u-valid" + }, + "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:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "MachineKey": "mkey:9a709409f55120a331e999e28ee34fc2128bf74c2d079c5f0c38a76d6f32be68", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2027-04-15T18:35:24Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "HomeDERP": 8, + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-valid": [{ + "node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "a3-expire", + "at": "2026-10-17T18:37:08.749729492Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:u-spent}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:u-spent}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:09Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 18 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:u-valid}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 60 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:u-valid}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:10Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:11Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 2018 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:10Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:14Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5218 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-spent": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "Hostinfo": {"Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "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": "u-spent", + "ComputedNameWithHost": "u-spent" + }, + "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:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "MachineKey": "mkey:8044faf131abb3a53a34f913f37698b43fcf57dc9880dcfe3a520eedcb97c625", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "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" + }} + }, "backend_state": "NeedsLogin"}, "u-valid": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "Hostinfo": {"Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "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": "u-valid", + "ComputedNameWithHost": "u-valid" + }, + "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:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "MachineKey": "mkey:9a709409f55120a331e999e28ee34fc2128bf74c2d079c5f0c38a76d6f32be68", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "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" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "a4-expired-spent-key", + "at": "2026-10-17T18:37:22.005085523Z", + "result": "observed", + "actions": [ + {"kind": "relogin", "node": "u-spent", "key": "A-K1", "hostname": "u-spent"}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 12.604581, "preferred": true}, + "Ashburn": {"latencyMs": 105.654134}, + "Bengaluru": {"latencyMs": 216.070564}, + "Chicago": {"latencyMs": 111.992075}, + "Dallas": {"latencyMs": 127.97466399999999}, + "Denver": {"latencyMs": 134.78637500000002}, + "Dubai": {"latencyMs": 117.536718}, + "Frankfurt": {"latencyMs": 15.453275000000001}, + "Helsinki": {"latencyMs": 36.072178}, + "Hong Kong": {"latencyMs": 196.014441}, + "Honolulu": {"latencyMs": 206.903279}, + "Johannesburg": {"latencyMs": 207.003502}, + "London": {"latencyMs": 15.499803}, + "Los Angeles": {"latencyMs": 144.61701900000003}, + "Madrid": {"latencyMs": 34.30322}, + "Miami": {"latencyMs": 120.325635}, + "Nairobi": {"latencyMs": 173.43830599999998}, + "New York City": {"latencyMs": 93.121199}, + "Nuremberg": {"latencyMs": 22.953331000000002}, + "Paris": {"latencyMs": 18.225363}, + "San Francisco": {"latencyMs": 156.235394}, + "Seattle": {"latencyMs": 145.874833}, + "Singapore": {"latencyMs": 174.669022}, + "Tokyo": {"latencyMs": 243.618266}, + "Toronto": {"latencyMs": 119.451852}, + "Warsaw": {"latencyMs": 27.938784000000002} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:10Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:26Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:4}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3608 + }, + { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:35:16Z", + "description": "tscap-saasprobe A-K1", + "expires": "2026-10-17T19:35:16Z", + "expirySeconds": 3600, + "id": "{key:A-K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:35:25Z", + "userId": "{user:odin}" + }, + "offset_ms": 3628 + }, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3644 + } + ], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-spent": { + "packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "Ports": {"First": 0, "Last": 65535}} + ]} + ], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Endpoints": [ + "192.0.2.1:47581", + "198.51.100.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], + "Hostinfo": {"Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "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": "u-spent", + "ComputedNameWithHost": "u-spent" + }, + "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:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "MachineKey": "mkey:8044faf131abb3a53a34f913f37698b43fcf57dc9880dcfe3a520eedcb97c625", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5eddbd4fa4910266d8f0ab222cc0ed6edce44ef938fb1e90a2705f189c628c3e", + "KeyExpiry": "2026-10-17T18:37:09Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.114.193.103/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::228:c168/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.114.193.103", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::228:c168", "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" + }} + }, + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:A-K1} not valid" + }}, + "register": {"u-spent": [ + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true + }, + { + "node_key": "{nodekey:9}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:A-K1} not valid"}, + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true + }, + { + "node_key": "{nodekey:10}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 4994}, + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 4994 + }, + {"node_key": "{nodekey:11}", "old_node_key": "{nodekey:3}", "offset_ms": 4994} + ]} + }, { + "name": "a5-expired-valid-key", + "at": "2026-10-17T18:37:31.683991254Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-valid", + "key": "A-Kx", + "hostname": "u-valid", + "offset_ms": 1 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:26Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:5}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:35Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3679 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kx}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3700 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3716 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-valid": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "Hostinfo": { + "Hostname": "u-valid", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:35:25.327975804Z", + "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": "u-valid", + "ComputedNameWithHost": "u-valid" + }, + "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:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "MachineKey": "mkey:9a709409f55120a331e999e28ee34fc2128bf74c2d079c5f0c38a76d6f32be68", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:2f4b62ceffc6fbe460bd2d565f7c8328a8458ab0ecf18873205dad5abdca7452", + "KeyExpiry": "2027-04-15T18:35:25Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.98.140.62/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::9c28:8c3f/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.98.140.62", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::9c28:8c3f", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-spent": [ + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 316}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 316}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 316}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5316}, + {"node_key": "{nodekey:3}", "offset_ms": 5316}, + {"node_key": "{nodekey:13}", "old_node_key": "{nodekey:3}", "offset_ms": 5316} + ], "u-valid": [{ + "node_key": "{nodekey:4}", + "node_key_expired": true, + "machine_authorized": true + }, { + "node_key": "{nodekey:12}", + "old_node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 316 + }]} + }, { + "name": "a6-rotate", + "at": "2026-10-17T18:37:41.437803288Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-rotate", + "key": "A-Kx", + "force": true, + "hostname": "u-rotate", + "offset_ms": 1 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:45Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:37:45Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:45Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:45Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:45Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:51898", + "192.0.2.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], "latency": { + "Amsterdam": {"latencyMs": 12.422988, "preferred": true}, + "Ashburn": {"latencyMs": 99.532829}, + "Bengaluru": {"latencyMs": 139.029394}, + "Chicago": {"latencyMs": 110.804066}, + "Dallas": {"latencyMs": 126.01393399999999}, + "Denver": {"latencyMs": 137.52955699999998}, + "Dubai": {"latencyMs": 116.938027}, + "Frankfurt": {"latencyMs": 16.74146}, + "Helsinki": {"latencyMs": 35.719097999999995}, + "Hong Kong": {"latencyMs": 196.467059}, + "Honolulu": {"latencyMs": 202.411423}, + "Johannesburg": {"latencyMs": 208.046837}, + "London": {"latencyMs": 16.993401000000002}, + "Los Angeles": {"latencyMs": 143.32572399999998}, + "Madrid": {"latencyMs": 33.696235}, + "Miami": {"latencyMs": 119.51154199999999}, + "Nairobi": {"latencyMs": 164.428004}, + "New York City": {"latencyMs": 90.541028}, + "Nuremberg": {"latencyMs": 23.102134}, + "Paris": {"latencyMs": 19.810914}, + "San Francisco": {"latencyMs": 156.15637900000002}, + "Seattle": {"latencyMs": 148.034316}, + "Singapore": {"latencyMs": 176.228015}, + "Tokyo": {"latencyMs": 238.014702}, + "Toronto": {"latencyMs": 120.17766}, + "Warsaw": {"latencyMs": 27.780365} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3692 + }, { + "kind": "api", + "principal": "user:odin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kx}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3711 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3729 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-rotate": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "Hostinfo": {"Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "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": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, + "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:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "MachineKey": "mkey:a2e25b8dcd1abd5155ac9468e026aa7d0c0e9d59c82a6d1d1d27048f8873b051", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-rotate": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:14}", + "old_node_key": "{nodekey:5}", + "node_key_expired": false, + "machine_authorized": true + }], "u-spent": [ + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 562}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 562}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 562}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5562}, + {"node_key": "{nodekey:3}", "offset_ms": 5562}, + {"node_key": "{nodekey:15}", "old_node_key": "{nodekey:3}", "offset_ms": 5562} + ]} + }, { + "name": "a7-restart", + "at": "2026-10-17T18:37:51.202504402Z", + "result": "observed", + "actions": [{"kind": "restart", "node": "u-rotate", "offset_ms": 4006}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:00Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:00Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:00Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:00Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:00Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52560", + "192.0.2.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], "latency": { + "Amsterdam": {"latencyMs": 14.472394, "preferred": true}, + "Ashburn": {"latencyMs": 93.76529000000001}, + "Bengaluru": {"latencyMs": 220.31268}, + "Chicago": {"latencyMs": 113.761113}, + "Dallas": {"latencyMs": 127.144196}, + "Denver": {"latencyMs": 136.58978199999999}, + "Dubai": {"latencyMs": 116.678546}, + "Frankfurt": {"latencyMs": 16.8874}, + "Helsinki": {"latencyMs": 37.045408}, + "Hong Kong": {"latencyMs": 197.215754}, + "Honolulu": {"latencyMs": 227.66382099999998}, + "Johannesburg": {"latencyMs": 172.471765}, + "London": {"latencyMs": 16.731514}, + "Los Angeles": {"latencyMs": 144.632214}, + "Madrid": {"latencyMs": 34.825210000000006}, + "Miami": {"latencyMs": 119.925254}, + "Nairobi": {"latencyMs": 160.934145}, + "New York City": {"latencyMs": 91.943924}, + "Nuremberg": {"latencyMs": 26.160932000000003}, + "Paris": {"latencyMs": 19.086522000000002}, + "San Francisco": {"latencyMs": 158.10224}, + "Seattle": {"latencyMs": 149.29471}, + "Singapore": {"latencyMs": 182.564787}, + "Tokyo": {"latencyMs": 248.97555599999998}, + "Toronto": {"latencyMs": 119.231739}, + "Warsaw": {"latencyMs": 26.860651} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 8304 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:40:00.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, + "backend_state": "Running" + }, "u-rotate": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "Ports": {"First": 0, "Last": 65535}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:9ef48a551be93e6d4ffe6233d177ded6b12573b69077a5851b812c9829b6d432", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:51898", + "198.51.100.1:51898", + "198.51.100.2:51898", + "198.51.100.3:51898" + ], + "Hostinfo": {"Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "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": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, + "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:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "MachineKey": "mkey:a2e25b8dcd1abd5155ac9468e026aa7d0c0e9d59c82a6d1d1d27048f8873b051", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.74.116.82/32", "Ports": {"First": 0, "Last": 65535}}, { + "Net": "fd7a:115c:a1e0::bd28:7453/128", + "Ports": {"First": 0, "Last": 65535} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], "DstPorts": [ + {"IP": "100.74.116.82", "Ports": {"First": 0, "Last": 65535}}, + {"IP": "fd7a:115c:a1e0::bd28:7453", "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" + }} + }, "backend_state": "Running"}}, + "register": {"u-rotate": [{ + "node_key": "{nodekey:14}", + "old_node_key": "{nodekey:5}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3797 + }], "u-spent": [ + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 797}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 797}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 1797}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5797}, + {"node_key": "{nodekey:3}", "offset_ms": 6797}, + { + "node_key": "{nodekey:16}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 6797 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 10797}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 10797} + ]} + }, { + "name": "a8-convert", + "at": "2026-10-17T18:38:05.543444253Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "A-Kp", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe A-Kp", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 18 + }, { + "kind": "relogin", + "node": "u-convert", + "key": "A-Kp", + "request_tags": ["tag:prod"], + "hostname": "u-convert", + "offset_ms": 36 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:10Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:10Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:10Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:10Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:10Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52560", + "192.0.2.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], "latency": { + "Amsterdam": {"latencyMs": 14.472394, "preferred": true}, + "Ashburn": {"latencyMs": 93.76529000000001}, + "Bengaluru": {"latencyMs": 220.31268}, + "Chicago": {"latencyMs": 113.761113}, + "Dallas": {"latencyMs": 127.144196}, + "Denver": {"latencyMs": 136.58978199999999}, + "Dubai": {"latencyMs": 116.678546}, + "Frankfurt": {"latencyMs": 16.8874}, + "Helsinki": {"latencyMs": 37.045408}, + "Hong Kong": {"latencyMs": 197.215754}, + "Honolulu": {"latencyMs": 227.66382099999998}, + "Johannesburg": {"latencyMs": 172.471765}, + "London": {"latencyMs": 16.731514}, + "Los Angeles": {"latencyMs": 144.632214}, + "Madrid": {"latencyMs": 34.825210000000006}, + "Miami": {"latencyMs": 119.925254}, + "Nairobi": {"latencyMs": 160.934145}, + "New York City": {"latencyMs": 91.943924}, + "Nuremberg": {"latencyMs": 26.160932000000003}, + "Paris": {"latencyMs": 19.086522000000002}, + "San Francisco": {"latencyMs": 158.10224}, + "Seattle": {"latencyMs": 149.29471}, + "Singapore": {"latencyMs": 182.564787}, + "Tokyo": {"latencyMs": 248.97555599999998}, + "Toronto": {"latencyMs": 119.231739}, + "Warsaw": {"latencyMs": 26.860651} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4490 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kp}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4510 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4525 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], + "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, "backend_state": "Running"}, "u-convert": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 6816112363233601, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "Hostinfo": {"Hostname": "u-convert", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Tags": ["tag:prod"], + "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": "u-convert", + "ComputedNameWithHost": "u-convert" + }, + "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:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "MachineKey": "mkey:a0bd6c962bc4a31140840f70fd70e45500fd935c15627c2022fdcc09daa1f66e", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.121.87.87/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128", + "fd7a:115c:a1e0::c628:5758/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.121.87.87", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [{"IP": "*", "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" + }, "6816112363233601": { + "ID": 6816112363233601, + "LoginName": "u-convert.tail78f774.ts.net", + "DisplayName": "u-convert" + }} + }, + "backend_state": "Running" + }}, + "register": {"u-convert": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": true + }], "u-spent": [ + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 1456}, + {"node_key": "{nodekey:3}", "offset_ms": 2456}, + { + "node_key": "{nodekey:17}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 2456 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 6456}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 7456} + ]} + }, { + "name": "a9-used-tagged-key", + "at": "2026-10-17T18:38:16.110023855Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-loser-same", + "key": "A-Kp", + "request_tags": ["tag:prod"], + "hostname": "u-loser-same", + "offset_ms": 20 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:21Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:21Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:21Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:28Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:21Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:8}", + "oauthClientId": "{key:A-K5}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:21Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52560", + "192.0.2.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], "latency": { + "Amsterdam": {"latencyMs": 14.472394, "preferred": true}, + "Ashburn": {"latencyMs": 93.76529000000001}, + "Bengaluru": {"latencyMs": 220.31268}, + "Chicago": {"latencyMs": 113.761113}, + "Dallas": {"latencyMs": 127.144196}, + "Denver": {"latencyMs": 136.58978199999999}, + "Dubai": {"latencyMs": 116.678546}, + "Frankfurt": {"latencyMs": 16.8874}, + "Helsinki": {"latencyMs": 37.045408}, + "Hong Kong": {"latencyMs": 197.215754}, + "Honolulu": {"latencyMs": 227.66382099999998}, + "Johannesburg": {"latencyMs": 172.471765}, + "London": {"latencyMs": 16.731514}, + "Los Angeles": {"latencyMs": 144.632214}, + "Madrid": {"latencyMs": 34.825210000000006}, + "Miami": {"latencyMs": 119.925254}, + "Nairobi": {"latencyMs": 160.934145}, + "New York City": {"latencyMs": 91.943924}, + "Nuremberg": {"latencyMs": 26.160932000000003}, + "Paris": {"latencyMs": 19.086522000000002}, + "San Francisco": {"latencyMs": 158.10224}, + "Seattle": {"latencyMs": 149.29471}, + "Singapore": {"latencyMs": 182.564787}, + "Tokyo": {"latencyMs": 248.97555599999998}, + "Toronto": {"latencyMs": 119.231739}, + "Warsaw": {"latencyMs": 26.860651} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 4494 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kp}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 4513 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 4530 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], + "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, "backend_state": "Running"}, "u-loser-same": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 3719794019332041, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "Hostinfo": {"Hostname": "u-loser-same", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Tags": ["tag:prod"], + "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": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, + "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:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "MachineKey": "mkey:e1d14879fa0ff3b28db92502f3b498ff629368a63fbdb72d2de128ba5416b565", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:e2e47323900c828b24e24bb1a97b54d922c21015e7ed6a8fb8a020833f37d418", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.119.212.24/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.119.212.24", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "3719794019332041": { + "ID": 3719794019332041, + "LoginName": "u-loser-same.tail78f774.ts.net", + "DisplayName": "u-loser-same" + }, "4156223528223174": { + "ID": 4156223528223174, + "LoginName": "odin@example.com", + "DisplayName": "odin" + }} + }, + "backend_state": "Running" + }}, + "register": {"u-loser-same": [{ + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": true + }], "u-spent": [ + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 889}, + {"node_key": "{nodekey:3}", "offset_ms": 2889}, + { + "node_key": "{nodekey:18}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 2889 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5889}, + {"node_key_expired": true, "machine_authorized": true, "offset_ms": 7889} + ]} + }, { + "name": "a10-used-tagged-key-force", + "at": "2026-10-17T18:38:26.677833717Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-loser-force", + "key": "A-Kp", + "force": true, + "request_tags": ["tag:prod"], + "hostname": "u-loser-force", + "offset_ms": 21 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:30Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:30Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:30Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:38:27Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:27Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:A-Kp}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:30Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52560", + "192.0.2.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], "latency": { + "Amsterdam": {"latencyMs": 14.472394, "preferred": true}, + "Ashburn": {"latencyMs": 93.76529000000001}, + "Bengaluru": {"latencyMs": 220.31268}, + "Chicago": {"latencyMs": 113.761113}, + "Dallas": {"latencyMs": 127.144196}, + "Denver": {"latencyMs": 136.58978199999999}, + "Dubai": {"latencyMs": 116.678546}, + "Frankfurt": {"latencyMs": 16.8874}, + "Helsinki": {"latencyMs": 37.045408}, + "Hong Kong": {"latencyMs": 197.215754}, + "Honolulu": {"latencyMs": 227.66382099999998}, + "Johannesburg": {"latencyMs": 172.471765}, + "London": {"latencyMs": 16.731514}, + "Los Angeles": {"latencyMs": 144.632214}, + "Madrid": {"latencyMs": 34.825210000000006}, + "Miami": {"latencyMs": 119.925254}, + "Nairobi": {"latencyMs": 160.934145}, + "New York City": {"latencyMs": 91.943924}, + "Nuremberg": {"latencyMs": 26.160932000000003}, + "Paris": {"latencyMs": 19.086522000000002}, + "San Francisco": {"latencyMs": 158.10224}, + "Seattle": {"latencyMs": 149.29471}, + "Singapore": {"latencyMs": 182.564787}, + "Tokyo": {"latencyMs": 248.97555599999998}, + "Toronto": {"latencyMs": 119.231739}, + "Warsaw": {"latencyMs": 26.860651} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3717 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:A-Kp}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T18:38:06Z", + "description": "tscap-saasprobe A-Kp", + "expires": "2026-10-17T19:38:06Z", + "expirySeconds": 3600, + "id": "{key:A-Kp}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T18:38:27Z", + "userId": "{user:odin}" + }, + "offset_ms": 3738 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": true}} + }, + "created": "2026-10-17T18:35:24Z", + "description": "tscap-saasprobe A-Kx", + "expires": "2026-10-17T19:35:24Z", + "expirySeconds": 3600, + "id": "{key:A-Kx}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3754 + }], + "captures": {"obs": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 6212833790962056, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "MachineKey": "mkey:c72d79167e0e4a297c48f70e5e369a07633804316c0f6b75d96ba30581781e34", + "Peers": [{ + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "6212833790962056": { + "ID": 6212833790962056, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, + "backend_state": "Running" + }, "t-server": {"packet_filter_rules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 8151150853884850, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "Hostinfo": {"Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "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": "t-server", + "ComputedNameWithHost": "t-server" + }, + "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:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "MachineKey": "mkey:9b040183132e30f56497d756562b76ec1dea1eff9603b611f4943bd241fe8e4d", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 6816112363233601, + "StableID": "nQiorPi2Ev11CNTRL", + "Name": "u-convert.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:c9f408952c4d185e1a39bb27c236e8378e616fe3faa870e3b5a5e31ba789b270", + "KeyExpiry": "2027-04-15T18:35:26Z", + "DiscoKey": "discokey:40c96a4ba7e58262fbee96c8daebb26a00092ff88f39ffe389441840938dc65c", + "Addresses": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "AllowedIPs": ["100.73.178.112/32", "fd7a:115c:a1e0::a728:b271/128"], + "Endpoints": [ + "192.0.2.1:59938", + "198.51.100.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-convert", "Services": [ + {"Proto": "peerapi4", "Port": 53851}, + {"Proto": "peerapi6", "Port": 53851} + ]}, + "Created": "2026-10-17T18:35:26.626551662Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-convert", + "ComputedNameWithHost": "u-convert" + }, { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-force", "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, { + "ID": 3719794019332041, + "StableID": "ntvpeWgh3W11CNTRL", + "Name": "u-loser-same.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:e3a466f27faeed4e0e9e724acd1cbb0f2fb3776eb4742e19c374694cc6f95757", + "KeyExpiry": "2027-04-15T18:35:27Z", + "DiscoKey": "discokey:2784eed469212833beaab2ef563d5aee4c149d79ec169b5167ba7a81643b020d", + "Addresses": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "AllowedIPs": ["100.121.87.87/32", "fd7a:115c:a1e0::c628:5758/128"], + "Endpoints": [ + "192.0.2.1:53328", + "198.51.100.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-loser-same", "Services": [ + {"Proto": "peerapi4", "Port": 34057}, + {"Proto": "peerapi6", "Port": 34057} + ]}, + "Created": "2026-10-17T18:35:27.273079237Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "u-loser-same", + "ComputedNameWithHost": "u-loser-same" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}, { + "IPProto": [6, 17, 1, 58], + "Srcs": [ + "100.119.212.24/32", + "100.121.87.87/32", + "100.73.178.112/32", + "fd7a:115c:a1e0::3f28:d419/128", + "fd7a:115c:a1e0::a728:b271/128", + "fd7a:115c:a1e0::c628:5758/128" + ], + "SrcCaps": null, + "Dsts": [{"Net": "100.75.107.56/32", "Ports": {"First": 5432, "Last": 5432}}, { + "Net": "fd7a:115c:a1e0::3628:6b39/128", + "Ports": {"First": 5432, "Last": 5432} + }], + "Caps": [] + }], + "PacketFilterRules": [ + { + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, + {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}, + {"SrcIPs": [ + "100.119.212.24", + "100.121.87.87", + "100.73.178.112", + "fd7a:115c:a1e0::3f28:d419", + "fd7a:115c:a1e0::a728:b271", + "fd7a:115c:a1e0::c628:5758" + ], "DstPorts": [ + {"IP": "100.75.107.56", "Ports": {"First": 5432, "Last": 5432}}, + {"IP": "fd7a:115c:a1e0::3628:6b39", "Ports": {"First": 5432, "Last": 5432}} + ]} + ], + "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" + }, "8151150853884850": { + "ID": 8151150853884850, + "LoginName": "t-server.tail78f774.ts.net", + "DisplayName": "t-server" + }} + }, "backend_state": "Running"}, "u-loser-force": { + "packet_filter_rules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}]}], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4237155629584988, + "StableID": "njJfXpt16a11CNTRL", + "Name": "u-loser-force.tail78f774.ts.net.", + "User": 4237155629584988, + "Key": "nodekey:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "DiscoKey": "discokey:742aac63f09d97b12489ec21def54cf14cedb0c993291bc9fad99fbaf21fdd56", + "Addresses": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "AllowedIPs": ["100.119.212.24/32", "fd7a:115c:a1e0::3f28:d419/128"], + "Endpoints": [ + "192.0.2.1:41134", + "198.51.100.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], + "Hostinfo": {"Hostname": "u-loser-force", "RequestTags": ["tag:prod"], "Services": [ + {"Proto": "peerapi4", "Port": 49034}, + {"Proto": "peerapi6", "Port": 49034}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:35:27.955810756Z", + "Tags": ["tag:prod"], + "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": "u-loser-force", + "ComputedNameWithHost": "u-loser-force" + }, + "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:7e205e40b473e7989d82c2b40fb71188fb8ccc365b86a18e1861d797b7fbb40b", + "MachineKey": "mkey:474fc408cab4dd14cac26f4c29ff9c4526375ae827d276e3b2067db0ae211e1f", + "Peers": [{ + "ID": 6212833790962056, + "StableID": "nRDwFJcoWq11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:f565ada9f2ee0fc6c8109deb5dbcc9b87423f78e312091a75a9f00f0c09dfc6c", + "DiscoKey": "discokey:17788d22aa097564c34449dfe0bb356fbb3e9fe6d79c0ad0caa7b78c11f40e02", + "Addresses": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "AllowedIPs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "Endpoints": [ + "192.0.2.1:60465", + "198.51.100.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 59187}, + {"Proto": "peerapi6", "Port": 59187} + ]}, + "Created": "2026-10-17T18:35:09.286898552Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }, { + "ID": 8151150853884850, + "StableID": "nqnsequfe621CNTRL", + "Name": "t-server.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:528f9eedf9090ef2f5def3587ceb91a4a64ae5e574f070cd0e7af4a636cb6b38", + "DiscoKey": "discokey:c2ade1dad1530df711269503b07013454eba31acf51fd07c28f54ace34c60530", + "Addresses": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "AllowedIPs": ["100.75.107.56/32", "fd7a:115c:a1e0::3628:6b39/128"], + "Endpoints": [ + "192.0.2.1:57806", + "198.51.100.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-server", "Services": [ + {"Proto": "peerapi4", "Port": 45505}, + {"Proto": "peerapi6", "Port": 45505} + ]}, + "Created": "2026-10-17T18:35:23.997912905Z", + "Cap": 142, + "Tags": ["tag:server"], + "Online": true, + "ComputedName": "t-server", + "ComputedNameWithHost": "t-server" + }, { + "ID": 3052335079622683, + "StableID": "nGbqkffQqQ11CNTRL", + "Name": "u-rotate.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:5a14a2c23266e6be8301690ec74e58646b3b9eaea073f7f15b4f162272369d7a", + "KeyExpiry": "2027-04-15T18:37:41Z", + "DiscoKey": "discokey:50d108836c64e77bf5d17853a5d45fe319033d930dc335e815605606b8a4094a", + "Addresses": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "AllowedIPs": ["100.74.116.82/32", "fd7a:115c:a1e0::bd28:7453/128"], + "Endpoints": [ + "192.0.2.1:52560", + "198.51.100.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-rotate", "Services": [ + {"Proto": "peerapi4", "Port": 56622}, + {"Proto": "peerapi6", "Port": 56622} + ]}, + "Created": "2026-10-17T18:35:25.972425386Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-rotate", + "ComputedNameWithHost": "u-rotate" + }, { + "ID": 7472021296957817, + "StableID": "nSq5H6L6M121CNTRL", + "Name": "u-spent.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:a36ea8f34e74d5962764639a8bd1d8263e3817bffbd08bfa728b840802b2c167", + "KeyExpiry": "2026-10-17T18:37:07Z", + "DiscoKey": "discokey:efdc61a61a5963ad083cab586cb825e3009a4569dd98881c468ef302368dfa58", + "Addresses": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "AllowedIPs": ["100.114.193.103/32", "fd7a:115c:a1e0::228:c168/128"], + "Hostinfo": {"OS": "linux", "Hostname": "u-spent", "Services": [ + {"Proto": "peerapi4", "Port": 63448}, + {"Proto": "peerapi6", "Port": 63448} + ]}, + "Created": "2026-10-17T18:35:24.666120794Z", + "Cap": 142, + "LastSeen": "2026-10-17T18:37:37.1Z", + "Online": false, + "ComputedName": "u-spent", + "ComputedNameWithHost": "u-spent", + "Expired": true + }, { + "ID": 7001343145842485, + "StableID": "nCnqpuQvfw11CNTRL", + "Name": "u-valid.tail78f774.ts.net.", + "User": 4156223528223174, + "Key": "nodekey:bc7849560066f6e0a894fd553ef445c3ba1164add8865724d355c2aa4c68995c", + "KeyExpiry": "2027-04-15T18:37:32Z", + "DiscoKey": "discokey:aa41f3de0b1630c52f40c84ce02941b9cbdcf0cdcb6839a7784a3d6ff7104456", + "Addresses": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "AllowedIPs": ["100.98.140.62/32", "fd7a:115c:a1e0::9c28:8c3f/128"], + "Endpoints": [ + "192.0.2.1:57891", + "198.51.100.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-valid", "Services": [ + {"Proto": "peerapi4", "Port": 36016}, + {"Proto": "peerapi6", "Port": 36016} + ]}, + "Created": "2026-10-17T18:35:25.327975804Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-valid", + "ComputedNameWithHost": "u-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.93.252.108/32", "fd7a:115c:a1e0::c028:fc6d/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, {"IPProto": [6, 17, 1, 58], "Srcs": [ + "100.114.193.103/32", + "100.74.116.82/32", + "100.98.140.62/32", + "fd7a:115c:a1e0::228:c168/128", + "fd7a:115c:a1e0::9c28:8c3f/128", + "fd7a:115c:a1e0::bd28:7453/128" + ], "SrcCaps": null, "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], "Caps": []}], + "PacketFilterRules": [{ + "SrcIPs": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, {"SrcIPs": [ + "100.114.193.103", + "100.74.116.82", + "100.98.140.62", + "fd7a:115c:a1e0::228:c168", + "fd7a:115c:a1e0::9c28:8c3f", + "fd7a:115c:a1e0::bd28:7453" + ], "DstPorts": [{"IP": "*", "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" + }, "4237155629584988": { + "ID": 4237155629584988, + "LoginName": "u-loser-force.tail78f774.ts.net", + "DisplayName": "u-loser-force" + }} + }, + "backend_state": "Running" + }}, + "register": {"u-loser-force": [{ + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, { + "node_key": "{nodekey:19}", + "old_node_key": "{nodekey:8}", + "node_key_expired": false, + "machine_authorized": true + }], "u-spent": [ + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 322}, + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 2322 + }, + { + "node_key": "{nodekey:20}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 2322 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5322}, + {"node_key": "{nodekey:3}", "offset_ms": 6322} + ]} + }, { + "name": "a11-final", + "at": "2026-10-17T18:38:36.466892698Z", + "note": "snapshots are the top-level captures", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.93.252.108", "fd7a:115c:a1e0::c028:fc6d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:60465", + "192.0.2.1:60465", + "198.51.100.2:60465", + "198.51.100.3:60465" + ], "latency": { + "Amsterdam": {"latencyMs": 12.036226000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.628487}, + "Bengaluru": {"latencyMs": 142.09539500000002}, + "Chicago": {"latencyMs": 113.383077}, + "Dallas": {"latencyMs": 126.06293}, + "Denver": {"latencyMs": 135.39452799999998}, + "Dubai": {"latencyMs": 114.61179100000001}, + "Frankfurt": {"latencyMs": 17.055932}, + "Helsinki": {"latencyMs": 37.233279}, + "Hong Kong": {"latencyMs": 195.255618}, + "Honolulu": {"latencyMs": 195.53095100000002}, + "Johannesburg": {"latencyMs": 183.19413300000002}, + "London": {"latencyMs": 17.033803}, + "Los Angeles": {"latencyMs": 142.690325}, + "Madrid": {"latencyMs": 34.917638000000004}, + "Miami": {"latencyMs": 118.724378}, + "Nairobi": {"latencyMs": 163.679556}, + "New York City": {"latencyMs": 92.359847}, + "Nuremberg": {"latencyMs": 22.574029}, + "Paris": {"latencyMs": 19.809055}, + "San Francisco": {"latencyMs": 155.365252}, + "Seattle": {"latencyMs": 146.735699}, + "Singapore": {"latencyMs": 173.210951}, + "Tokyo": {"latencyMs": 244.789065}, + "Toronto": {"latencyMs": 117.484022}, + "Warsaw": {"latencyMs": 27.815622} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:09Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:09Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:40Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:87cf992a6af90f367efa42f9bc118c04409b2fab5a5df6bc580c7cde730f8b54", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.75.107.56", "fd7a:115c:a1e0::3628:6b39"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57806", + "192.0.2.1:57806", + "198.51.100.2:57806", + "198.51.100.3:57806" + ], "latency": { + "Amsterdam": {"latencyMs": 11.534844000000001, "preferred": true}, + "Ashburn": {"latencyMs": 100.023109}, + "Bengaluru": {"latencyMs": 218.935002}, + "Chicago": {"latencyMs": 114.208394}, + "Dallas": {"latencyMs": 127.118333}, + "Denver": {"latencyMs": 138.143681}, + "Dubai": {"latencyMs": 116.30735200000001}, + "Frankfurt": {"latencyMs": 17.227938}, + "Helsinki": {"latencyMs": 36.901973}, + "Hong Kong": {"latencyMs": 198.326672}, + "Honolulu": {"latencyMs": 209.87862299999998}, + "Johannesburg": {"latencyMs": 184.833961}, + "London": {"latencyMs": 18.550252}, + "Los Angeles": {"latencyMs": 142.928318}, + "Madrid": {"latencyMs": 36.712367}, + "Miami": {"latencyMs": 120.249252}, + "Nairobi": {"latencyMs": 163.272253}, + "New York City": {"latencyMs": 91.93472}, + "Nuremberg": {"latencyMs": 24.229049999999997}, + "Paris": {"latencyMs": 21.085473}, + "San Francisco": {"latencyMs": 155.095966}, + "Seattle": {"latencyMs": 153.835463}, + "Singapore": {"latencyMs": 183.78865}, + "Tokyo": {"latencyMs": 241.98355899999999}, + "Toronto": {"latencyMs": 117.738692}, + "Warsaw": {"latencyMs": 28.202791} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:24Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:24Z", + "hostname": "t-server", + "id": "{device:t-server}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:40Z", + "machineKey": "{machine:t-server}", + "name": "t-server.tail78f774.ts.net", + "nodeId": "{device:t-server}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:A-Kserver}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:server"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:07ebd3531746183c11d7de164756c2a741af16417b8a7f8ac7205f82e8d9c97a", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.73.178.112", "fd7a:115c:a1e0::a728:b271"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59938", + "192.0.2.1:59938", + "198.51.100.2:59938", + "198.51.100.3:59938" + ], "latency": { + "Amsterdam": {"latencyMs": 13.248245, "preferred": true}, + "Ashburn": {"latencyMs": 96.496356}, + "Bengaluru": {"latencyMs": 219.05332099999998}, + "Chicago": {"latencyMs": 115.426936}, + "Dallas": {"latencyMs": 126.99712499999998}, + "Denver": {"latencyMs": 135.435053}, + "Dubai": {"latencyMs": 115.852391}, + "Frankfurt": {"latencyMs": 17.814883000000002}, + "Helsinki": {"latencyMs": 38.263286}, + "Hong Kong": {"latencyMs": 195.452559}, + "Honolulu": {"latencyMs": 202.261727}, + "Johannesburg": {"latencyMs": 204.72106200000002}, + "London": {"latencyMs": 17.609534999999997}, + "Los Angeles": {"latencyMs": 143.366512}, + "Madrid": {"latencyMs": 35.125108000000004}, + "Miami": {"latencyMs": 118.896294}, + "Nairobi": {"latencyMs": 174.34411}, + "New York City": {"latencyMs": 86.339408}, + "Nuremberg": {"latencyMs": 21.646321}, + "Paris": {"latencyMs": 20.532179000000003}, + "San Francisco": {"latencyMs": 159.128355}, + "Seattle": {"latencyMs": 150.601992}, + "Singapore": {"latencyMs": 189.55845399999998}, + "Tokyo": {"latencyMs": 236.456751}, + "Toronto": {"latencyMs": 121.826411}, + "Warsaw": {"latencyMs": 28.534906} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-convert", + "id": "{device:u-convert}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:40Z", + "machineKey": "{machine:u-convert}", + "name": "u-convert.tail78f774.ts.net", + "nodeId": "{device:u-convert}", + "nodeKey": "{nodekey:6}", + "oauthClientId": "{key:A-K3}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:eba3144841e1a77539dcc2b8ed81166979cb1871c4027dcfb367652c385d5ede", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.119.212.24", "fd7a:115c:a1e0::3f28:d419"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:41134", + "192.0.2.1:41134", + "198.51.100.2:41134", + "198.51.100.3:41134" + ], "latency": { + "Amsterdam": {"latencyMs": 11.21558, "preferred": true}, + "Ashburn": {"latencyMs": 100.227856}, + "Bengaluru": {"latencyMs": 211.63478}, + "Chicago": {"latencyMs": 111.374877}, + "Dallas": {"latencyMs": 127.24918199999999}, + "Denver": {"latencyMs": 137.367453}, + "Dubai": {"latencyMs": 115.82183}, + "Frankfurt": {"latencyMs": 19.938485999999997}, + "Helsinki": {"latencyMs": 35.742200000000004}, + "Hong Kong": {"latencyMs": 195.956311}, + "Honolulu": {"latencyMs": 223.81538600000002}, + "Johannesburg": {"latencyMs": 207.976803}, + "London": {"latencyMs": 18.108007}, + "Los Angeles": {"latencyMs": 145.021866}, + "Madrid": {"latencyMs": 35.092273999999996}, + "Miami": {"latencyMs": 121.01615699999999}, + "Nairobi": {"latencyMs": 163.19673400000002}, + "New York City": {"latencyMs": 91.685858}, + "Nuremberg": {"latencyMs": 25.926641}, + "Paris": {"latencyMs": 19.824965}, + "San Francisco": {"latencyMs": 156.592069}, + "Seattle": {"latencyMs": 145.536346}, + "Singapore": {"latencyMs": 186.027198}, + "Tokyo": {"latencyMs": 246.357856}, + "Toronto": {"latencyMs": 120.18828199999999}, + "Warsaw": {"latencyMs": 27.148851} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:38:27Z", + "hostname": "u-loser-force", + "id": "{device:u-loser-force}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:38:27Z", + "machineKey": "{machine:u-loser-force}", + "name": "u-loser-force.tail78f774.ts.net", + "nodeId": "{device:u-loser-force}", + "nodeKey": "{nodekey:19}", + "oauthClientId": "{key:A-Kp}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:850a265b3e6fdd385c3f224c466bfb39a3976d8510edcfff5a1401698fa1e5cf", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.121.87.87", "fd7a:115c:a1e0::c628:5758"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:53328", + "192.0.2.1:53328", + "198.51.100.2:53328", + "198.51.100.3:53328" + ], "latency": { + "Amsterdam": {"latencyMs": 12.699627999999999, "preferred": true}, + "Ashburn": {"latencyMs": 101.123874}, + "Bengaluru": {"latencyMs": 145.37772199999998}, + "Chicago": {"latencyMs": 112.92461700000001}, + "Dallas": {"latencyMs": 127.349934}, + "Denver": {"latencyMs": 139.557242}, + "Dubai": {"latencyMs": 116.82306000000001}, + "Frankfurt": {"latencyMs": 18.882195}, + "Helsinki": {"latencyMs": 36.060443}, + "Hong Kong": {"latencyMs": 196.525464}, + "Honolulu": {"latencyMs": 199.318462}, + "Johannesburg": {"latencyMs": 205.382251}, + "London": {"latencyMs": 18.175625}, + "Los Angeles": {"latencyMs": 144.280735}, + "Madrid": {"latencyMs": 35.503423}, + "Miami": {"latencyMs": 119.743131}, + "Nairobi": {"latencyMs": 161.37454000000002}, + "New York City": {"latencyMs": 87.144277}, + "Nuremberg": {"latencyMs": 22.149737}, + "Paris": {"latencyMs": 18.310124000000002}, + "San Francisco": {"latencyMs": 157.845521}, + "Seattle": {"latencyMs": 144.686901}, + "Singapore": {"latencyMs": 191.65205699999999}, + "Tokyo": {"latencyMs": 245.086825}, + "Toronto": {"latencyMs": 119.15601500000001}, + "Warsaw": {"latencyMs": 28.690525} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:27Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:35:27Z", + "hostname": "u-loser-same", + "id": "{device:u-loser-same}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:38:40Z", + "machineKey": "{machine:u-loser-same}", + "name": "u-loser-same.tail78f774.ts.net", + "nodeId": "{device:u-loser-same}", + "nodeKey": "{nodekey:7}", + "oauthClientId": "{key:A-K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:752dbbae8d42af888ead2d5a19d0a1e3a05c48d0b007558c870319a1bf8a6647", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.74.116.82", "fd7a:115c:a1e0::bd28:7453"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:52560", + "192.0.2.1:52560", + "198.51.100.2:52560", + "198.51.100.3:52560" + ], "latency": { + "Amsterdam": {"latencyMs": 14.472394, "preferred": true}, + "Ashburn": {"latencyMs": 93.76529000000001}, + "Bengaluru": {"latencyMs": 220.31268}, + "Chicago": {"latencyMs": 113.761113}, + "Dallas": {"latencyMs": 127.144196}, + "Denver": {"latencyMs": 136.58978199999999}, + "Dubai": {"latencyMs": 116.678546}, + "Frankfurt": {"latencyMs": 16.8874}, + "Helsinki": {"latencyMs": 37.045408}, + "Hong Kong": {"latencyMs": 197.215754}, + "Honolulu": {"latencyMs": 227.66382099999998}, + "Johannesburg": {"latencyMs": 172.471765}, + "London": {"latencyMs": 16.731514}, + "Los Angeles": {"latencyMs": 144.632214}, + "Madrid": {"latencyMs": 34.825210000000006}, + "Miami": {"latencyMs": 119.925254}, + "Nairobi": {"latencyMs": 160.934145}, + "New York City": {"latencyMs": 91.943924}, + "Nuremberg": {"latencyMs": 26.160932000000003}, + "Paris": {"latencyMs": 19.086522000000002}, + "San Francisco": {"latencyMs": 158.10224}, + "Seattle": {"latencyMs": 149.29471}, + "Singapore": {"latencyMs": 182.564787}, + "Tokyo": {"latencyMs": 248.97555599999998}, + "Toronto": {"latencyMs": 119.231739}, + "Warsaw": {"latencyMs": 26.860651} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:26Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:42Z", + "hostname": "u-rotate", + "id": "{device:u-rotate}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:41Z", + "machineKey": "{machine:u-rotate}", + "name": "u-rotate.tail78f774.ts.net", + "nodeId": "{device:u-rotate}", + "nodeKey": "{nodekey:14}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:af94981d23d2bc3f78a50b4801d394c22463517100cc49214a491ad494c6f414", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.114.193.103", "fd7a:115c:a1e0::228:c168"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:47581", + "192.0.2.1:47581", + "198.51.100.2:47581", + "198.51.100.3:47581" + ], "latency": { + "Amsterdam": {"latencyMs": 18.156682}, + "Ashburn": {"latencyMs": 103.309045}, + "Bengaluru": {"latencyMs": 141.091145}, + "Chicago": {"latencyMs": 111.370864}, + "Dallas": {"latencyMs": 125.50287700000001}, + "Denver": {"latencyMs": 137.285831}, + "Dubai": {"latencyMs": 116.376135}, + "Frankfurt": {"latencyMs": 17.027961}, + "Helsinki": {"latencyMs": 36.452834}, + "Hong Kong": {"latencyMs": 201.286651}, + "Honolulu": {"latencyMs": 194.526689}, + "Johannesburg": {"latencyMs": 211.699273}, + "London": {"latencyMs": 16.500588999999998, "preferred": true}, + "Los Angeles": {"latencyMs": 143.945998}, + "Madrid": {"latencyMs": 34.144986}, + "Miami": {"latencyMs": 117.923366}, + "Nairobi": {"latencyMs": 173.580415}, + "New York City": {"latencyMs": 96.395264}, + "Nuremberg": {"latencyMs": 28.295346}, + "Paris": {"latencyMs": 24.341811}, + "San Francisco": {"latencyMs": 162.026}, + "Seattle": {"latencyMs": 156.784908}, + "Singapore": {"latencyMs": 180.537529}, + "Toronto": {"latencyMs": 119.591015}, + "Warsaw": {"latencyMs": 28.339167} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": false, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T18:37:08Z", + "hostname": "u-spent", + "id": "{device:u-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:37Z", + "machineKey": "{machine:u-spent}", + "name": "u-spent.tail78f774.ts.net", + "nodeId": "{device:u-spent}", + "nodeKey": "{nodekey:3}", + "oauthClientId": "{key:A-K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:9390a5d856016a373ac92fa0139f65e4596aaf9cfb38ac0a24c5aecc8a736090", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.98.140.62", "fd7a:115c:a1e0::9c28:8c3f"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:57891", + "192.0.2.1:57891", + "198.51.100.2:57891", + "198.51.100.3:57891" + ], "latency": { + "Amsterdam": {"latencyMs": 11.451165, "preferred": true}, + "Frankfurt": {"latencyMs": 16.288445}, + "London": {"latencyMs": 16.041950999999997} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:35:25Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:37:32Z", + "hostname": "u-valid", + "id": "{device:u-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:37:32Z", + "machineKey": "{machine:u-valid}", + "name": "u-valid.tail78f774.ts.net", + "nodeId": "{device:u-valid}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:A-Kx}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:95b4c44ca3376ac8e5f7cd043ba7fb343c4e9ec61a23611777f18d44f955a528", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3185 + }], + "register": {"u-spent": [ + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 533}, + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 4533 + }, + { + "node_key": "{nodekey:21}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 4533 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 5533}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 10533}, + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 15533}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 15533} + ]} + }, { + "name": "teardown", + "at": "2026-10-17T18:38:55.704524538Z", + "result": "observed", + "actions": [ + {"kind": "retire", "node": "t-server"}, + {"kind": "retire", "node": "u-convert", "offset_ms": 62}, + {"kind": "retire", "node": "u-loser-force", "offset_ms": 2062}, + {"kind": "retire", "node": "u-loser-same", "offset_ms": 4063}, + {"kind": "retire", "node": "u-rotate", "offset_ms": 6066}, + {"kind": "retire", "node": "u-spent", "offset_ms": 8065}, + {"kind": "retire", "node": "u-valid", "offset_ms": 10069} + ], + "register": {"u-spent": [ + { + "node_key": "{nodekey:3}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 1295 + }, + { + "node_key": "{nodekey:22}", + "old_node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 1295 + }, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 1295}, + {"node_key": "{nodekey:3}", "offset_ms": 5295}, + {"node_key": "{nodekey:23}", "old_node_key": "{nodekey:3}", "offset_ms": 5295}, + {"err": "invalid key: API key {key:A-K1} not valid", "offset_ms": 6295} + ]} + }] +} diff --git a/hscontrol/servertest/testdata/steps/reauth.hujson b/hscontrol/servertest/testdata/steps/reauth.hujson new file mode 100644 index 000000000..9c8096903 --- /dev/null +++ b/hscontrol/servertest/testdata/steps/reauth.hujson @@ -0,0 +1,6937 @@ +// reauth +// +// Expired tagged devices logging in again with their own spent, valid and revoked keys, and a fresh machine with a spent key. +// +// Nodes with filter rules: 1 of 1 +// Steps: 14 +// Captured at: 2026-10-17T17:57:23Z +// tool version: saasprobe afc674cae4618176e7313fcd9ea484e0610747c8 +// schema version: 1 +{ + "schema_version": 1, + "test_id": "reauth", + "description": "Expired tagged devices logging in again with their own spent, valid and revoked keys, and a fresh machine with a spent key.", + "captured_at": "2026-10-17T17:57:23.453702802Z", + "tool_version": "saasprobe afc674cae4618176e7313fcd9ea484e0610747c8", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.91.134.70", + "ipv6": "fd7a:115c:a1e0::1528:8647", + "routable_ips": [], + "approved_routes": [] + }, "t-revoked": { + "hostname": "t-revoked", + "tags": ["tag:prod"], + "ipv4": "100.77.231.12", + "ipv6": "fd7a:115c:a1e0::f028:e70d", + "routable_ips": [], + "approved_routes": [] + }, "t-spent": { + "hostname": "t-spent", + "tags": ["tag:prod"], + "ipv4": "100.115.160.59", + "ipv6": "fd7a:115c:a1e0::fd28:a03c", + "routable_ips": [], + "approved_routes": [] + }, "t-valid": { + "hostname": "t-valid", + "tags": ["tag:prod"], + "ipv4": "100.99.144.0", + "ipv6": "fd7a:115c:a1e0::2e28:9001", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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": {"1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "obs": 1631235846200752, + "t-revoked": 4821586912260848, + "t-spent": 4117322770420761, + "t-valid": 4401505774348077 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T17:57:23.453790167Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T17:57:27Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T18:57:27Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 2003 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4101 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3546 + }]} + }, { + "name": "t-spent-join", + "at": "2026-10-17T17:57:32.103290209Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "K1", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K1", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:57:32Z", + "description": "tscap-saasprobe K1", + "expires": "2026-10-17T18:57:32Z", + "expirySeconds": 3600, + "id": "{key:K1}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 18 + }, { + "kind": "join", + "node": "t-spent", + "key": "K1", + "hostname": "t-spent", + "offset_ms": 163 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:57:36Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.115.160.59", "fd7a:115c:a1e0::fd28:a03c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56091", + "192.0.2.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], "latency": { + "Amsterdam": {"latencyMs": 11.841526, "preferred": true}, + "Ashburn": {"latencyMs": 93.959957}, + "Bengaluru": {"latencyMs": 218.899788}, + "Chicago": {"latencyMs": 114.58918999999999}, + "Dallas": {"latencyMs": 124.070365}, + "Denver": {"latencyMs": 137.37227099999998}, + "Dubai": {"latencyMs": 115.93643800000001}, + "Frankfurt": {"latencyMs": 17.488872}, + "Helsinki": {"latencyMs": 36.22377}, + "Hong Kong": {"latencyMs": 196.583113}, + "Honolulu": {"latencyMs": 194.535237}, + "Johannesburg": {"latencyMs": 208.25772}, + "London": {"latencyMs": 15.680749}, + "Los Angeles": {"latencyMs": 142.819982}, + "Madrid": {"latencyMs": 34.248905}, + "Miami": {"latencyMs": 117.649068}, + "Nairobi": {"latencyMs": 162.408117}, + "New York City": {"latencyMs": 86.900885}, + "Nuremberg": {"latencyMs": 20.236755}, + "Paris": {"latencyMs": 17.443669}, + "San Francisco": {"latencyMs": 159.572441}, + "Seattle": {"latencyMs": 145.64444400000002}, + "Tokyo": {"latencyMs": 242.962075}, + "Toronto": {"latencyMs": 118.90414100000001}, + "Warsaw": {"latencyMs": 28.703265} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:32Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:32Z", + "hostname": "t-spent", + "id": "{device:t-spent}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:57:36Z", + "machineKey": "{machine:t-spent}", + "name": "t-spent.tail78f774.ts.net", + "nodeId": "{device:t-spent}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:c1b6f9f5a8e69cfbde81d5895f5b3d2103dbb1ec342dd0cf076e607bbaffa2a7", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3774 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:57:32Z", + "description": "tscap-saasprobe K1", + "expires": "2026-10-17T18:57:32Z", + "expirySeconds": 3600, + "id": "{key:K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:57:32Z", + "userId": "{user:odin}" + }, + "offset_ms": 3791 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3807 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Endpoints": [ + "192.0.2.1:56091", + "198.51.100.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-spent", + "ComputedNameWithHost": "t-spent" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-spent": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 4117322770420761, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Hostinfo": { + "Hostname": "t-spent", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:57:32.40441946Z", + "Tags": ["tag:prod"], + "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": "t-spent", + "ComputedNameWithHost": "t-spent" + }, + "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:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "MachineKey": "mkey:9050d211df180cfdc2bb1a705184f559343446e2371db643d9710dee0a3c845d", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4117322770420761": { + "ID": 4117322770420761, + "LoginName": "t-spent.tail78f774.ts.net", + "DisplayName": "t-spent" + }} + }, "backend_state": "Running"}}, + "register": {"t-spent": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-spent-expire", + "at": "2026-10-17T17:57:39.946065452Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-spent}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:t-spent}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.115.160.59", "fd7a:115c:a1e0::fd28:a03c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56091", + "192.0.2.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], "latency": { + "Amsterdam": {"latencyMs": 11.841526, "preferred": true}, + "Ashburn": {"latencyMs": 93.959957}, + "Bengaluru": {"latencyMs": 218.899788}, + "Chicago": {"latencyMs": 114.58918999999999}, + "Dallas": {"latencyMs": 124.070365}, + "Denver": {"latencyMs": 137.37227099999998}, + "Dubai": {"latencyMs": 115.93643800000001}, + "Frankfurt": {"latencyMs": 17.488872}, + "Helsinki": {"latencyMs": 36.22377}, + "Hong Kong": {"latencyMs": 196.583113}, + "Honolulu": {"latencyMs": 194.535237}, + "Johannesburg": {"latencyMs": 208.25772}, + "London": {"latencyMs": 15.680749}, + "Los Angeles": {"latencyMs": 142.819982}, + "Madrid": {"latencyMs": 34.248905}, + "Miami": {"latencyMs": 117.649068}, + "Nairobi": {"latencyMs": 162.408117}, + "New York City": {"latencyMs": 86.900885}, + "Nuremberg": {"latencyMs": 20.236755}, + "Paris": {"latencyMs": 17.443669}, + "San Francisco": {"latencyMs": 159.572441}, + "Seattle": {"latencyMs": 145.64444400000002}, + "Tokyo": {"latencyMs": 242.962075}, + "Toronto": {"latencyMs": 118.90414100000001}, + "Warsaw": {"latencyMs": 28.703265} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:32Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:57:39Z", + "hostname": "t-spent", + "id": "{device:t-spent}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:57:40Z", + "machineKey": "{machine:t-spent}", + "name": "t-spent.tail78f774.ts.net", + "nodeId": "{device:t-spent}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:c1b6f9f5a8e69cfbde81d5895f5b3d2103dbb1ec342dd0cf076e607bbaffa2a7", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 21 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-spent}/key", + "header": {"Content-Type": "application/json"}, + "body": {"keyExpiryDisabled": false}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 39 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-spent}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2018 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:57:47Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.115.160.59", "fd7a:115c:a1e0::fd28:a03c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56091", + "192.0.2.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], "latency": { + "Amsterdam": {"latencyMs": 11.841526, "preferred": true}, + "Ashburn": {"latencyMs": 93.959957}, + "Bengaluru": {"latencyMs": 218.899788}, + "Chicago": {"latencyMs": 114.58918999999999}, + "Dallas": {"latencyMs": 124.070365}, + "Denver": {"latencyMs": 137.37227099999998}, + "Dubai": {"latencyMs": 115.93643800000001}, + "Frankfurt": {"latencyMs": 17.488872}, + "Helsinki": {"latencyMs": 36.22377}, + "Hong Kong": {"latencyMs": 196.583113}, + "Honolulu": {"latencyMs": 194.535237}, + "Johannesburg": {"latencyMs": 208.25772}, + "London": {"latencyMs": 15.680749}, + "Los Angeles": {"latencyMs": 142.819982}, + "Madrid": {"latencyMs": 34.248905}, + "Miami": {"latencyMs": 117.649068}, + "Nairobi": {"latencyMs": 162.408117}, + "New York City": {"latencyMs": 86.900885}, + "Nuremberg": {"latencyMs": 20.236755}, + "Paris": {"latencyMs": 17.443669}, + "San Francisco": {"latencyMs": 159.572441}, + "Seattle": {"latencyMs": 145.64444400000002}, + "Tokyo": {"latencyMs": 242.962075}, + "Toronto": {"latencyMs": 118.90414100000001}, + "Warsaw": {"latencyMs": 28.703265} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:32Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:57:43Z", + "hostname": "t-spent", + "id": "{device:t-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:57:47Z", + "machineKey": "{machine:t-spent}", + "name": "t-spent.tail78f774.ts.net", + "nodeId": "{device:t-spent}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:c1b6f9f5a8e69cfbde81d5895f5b3d2103dbb1ec342dd0cf076e607bbaffa2a7", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7120 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-spent", + "ComputedNameWithHost": "t-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-spent": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 4117322770420761, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Endpoints": [ + "192.0.2.1:56091", + "198.51.100.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], + "Hostinfo": {"Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Tags": ["tag:prod"], + "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": "t-spent", + "ComputedNameWithHost": "t-spent" + }, + "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:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "MachineKey": "mkey:9050d211df180cfdc2bb1a705184f559343446e2371db643d9710dee0a3c845d", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4117322770420761": { + "ID": 4117322770420761, + "LoginName": "t-spent.tail78f774.ts.net", + "DisplayName": "t-spent" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-spent-relogin", + "at": "2026-10-17T17:57:51.097376498Z", + "result": "expected-refusal", + "actions": [{"kind": "relogin", "node": "t-spent", "key": "K1", "hostname": "t-spent"}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:57:55Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.115.160.59", "fd7a:115c:a1e0::fd28:a03c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56091", + "192.0.2.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], "latency": { + "Amsterdam": {"latencyMs": 11.841526, "preferred": true}, + "Ashburn": {"latencyMs": 93.959957}, + "Bengaluru": {"latencyMs": 218.899788}, + "Chicago": {"latencyMs": 114.58918999999999}, + "Dallas": {"latencyMs": 124.070365}, + "Denver": {"latencyMs": 137.37227099999998}, + "Dubai": {"latencyMs": 115.93643800000001}, + "Frankfurt": {"latencyMs": 17.488872}, + "Helsinki": {"latencyMs": 36.22377}, + "Hong Kong": {"latencyMs": 196.583113}, + "Honolulu": {"latencyMs": 194.535237}, + "Johannesburg": {"latencyMs": 208.25772}, + "London": {"latencyMs": 15.680749}, + "Los Angeles": {"latencyMs": 142.819982}, + "Madrid": {"latencyMs": 34.248905}, + "Miami": {"latencyMs": 117.649068}, + "Nairobi": {"latencyMs": 162.408117}, + "New York City": {"latencyMs": 86.900885}, + "Nuremberg": {"latencyMs": 20.236755}, + "Paris": {"latencyMs": 17.443669}, + "San Francisco": {"latencyMs": 159.572441}, + "Seattle": {"latencyMs": 145.64444400000002}, + "Tokyo": {"latencyMs": 242.962075}, + "Toronto": {"latencyMs": 118.90414100000001}, + "Warsaw": {"latencyMs": 28.703265} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:32Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:57:43Z", + "hostname": "t-spent", + "id": "{device:t-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:57:55Z", + "machineKey": "{machine:t-spent}", + "name": "t-spent.tail78f774.ts.net", + "nodeId": "{device:t-spent}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:c1b6f9f5a8e69cfbde81d5895f5b3d2103dbb1ec342dd0cf076e607bbaffa2a7", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3542 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:57:32Z", + "description": "tscap-saasprobe K1", + "expires": "2026-10-17T18:57:32Z", + "expirySeconds": 3600, + "id": "{key:K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:57:32Z", + "userId": "{user:odin}" + }, + "offset_ms": 3561 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3578 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-spent", + "ComputedNameWithHost": "t-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-spent": { + "packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 4117322770420761, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Endpoints": [ + "192.0.2.1:56091", + "198.51.100.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], + "Hostinfo": {"Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Tags": ["tag:prod"], + "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": "t-spent", + "ComputedNameWithHost": "t-spent" + }, + "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:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "MachineKey": "mkey:9050d211df180cfdc2bb1a705184f559343446e2371db643d9710dee0a3c845d", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4117322770420761": { + "ID": 4117322770420761, + "LoginName": "t-spent.tail78f774.ts.net", + "DisplayName": "t-spent" + }} + }, + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:K1} not valid" + }}, + "register": {"t-spent": [ + { + "node_key": "{nodekey:2}", + "node_key_expired": true, + "machine_authorized": true + }, + { + "node_key": "{nodekey:3}", + "old_node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:K1} not valid"}, + { + "node_key": "{nodekey:2}", + "node_key_expired": true, + "machine_authorized": true + }, + { + "node_key": "{nodekey:4}", + "old_node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:K1} not valid", "offset_ms": 4902}, + { + "node_key": "{nodekey:2}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 4902 + }, + {"node_key": "{nodekey:5}", "old_node_key": "{nodekey:2}", "offset_ms": 4902} + ]} + }, { + "name": "t-spent-relogin-force", + "at": "2026-10-17T17:57:58.708499894Z", + "result": "expected-refusal", + "actions": [{ + "kind": "relogin", + "node": "t-spent", + "key": "K1", + "force": true, + "hostname": "t-spent" + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:05Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.115.160.59", "fd7a:115c:a1e0::fd28:a03c"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:56091", + "192.0.2.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], "latency": { + "Amsterdam": {"latencyMs": 11.841526, "preferred": true}, + "Ashburn": {"latencyMs": 93.959957}, + "Bengaluru": {"latencyMs": 218.899788}, + "Chicago": {"latencyMs": 114.58918999999999}, + "Dallas": {"latencyMs": 124.070365}, + "Denver": {"latencyMs": 137.37227099999998}, + "Dubai": {"latencyMs": 115.93643800000001}, + "Frankfurt": {"latencyMs": 17.488872}, + "Helsinki": {"latencyMs": 36.22377}, + "Hong Kong": {"latencyMs": 196.583113}, + "Honolulu": {"latencyMs": 194.535237}, + "Johannesburg": {"latencyMs": 208.25772}, + "London": {"latencyMs": 15.680749}, + "Los Angeles": {"latencyMs": 142.819982}, + "Madrid": {"latencyMs": 34.248905}, + "Miami": {"latencyMs": 117.649068}, + "Nairobi": {"latencyMs": 162.408117}, + "New York City": {"latencyMs": 86.900885}, + "Nuremberg": {"latencyMs": 20.236755}, + "Paris": {"latencyMs": 17.443669}, + "San Francisco": {"latencyMs": 159.572441}, + "Seattle": {"latencyMs": 145.64444400000002}, + "Tokyo": {"latencyMs": 242.962075}, + "Toronto": {"latencyMs": 118.90414100000001}, + "Warsaw": {"latencyMs": 28.703265} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:32Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:57:43Z", + "hostname": "t-spent", + "id": "{device:t-spent}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:58:05Z", + "machineKey": "{machine:t-spent}", + "name": "t-spent.tail78f774.ts.net", + "nodeId": "{device:t-spent}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:K1}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:c1b6f9f5a8e69cfbde81d5895f5b3d2103dbb1ec342dd0cf076e607bbaffa2a7", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5947 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:57:32Z", + "description": "tscap-saasprobe K1", + "expires": "2026-10-17T18:57:32Z", + "expirySeconds": 3600, + "id": "{key:K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:57:32Z", + "userId": "{user:odin}" + }, + "offset_ms": 5965 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 5981 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-spent", + "ComputedNameWithHost": "t-spent", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-spent": { + "packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4117322770420761, + "StableID": "nAuX756k9Z11CNTRL", + "Name": "t-spent.tail78f774.ts.net.", + "User": 4117322770420761, + "Key": "nodekey:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "KeyExpiry": "2026-10-17T17:57:42Z", + "DiscoKey": "discokey:f992d7aeda6c2809a9e5d407fca4f24a875ab570f333a56cfa656f3e40193674", + "Addresses": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "AllowedIPs": ["100.115.160.59/32", "fd7a:115c:a1e0::fd28:a03c/128"], + "Endpoints": [ + "192.0.2.1:56091", + "198.51.100.1:56091", + "198.51.100.2:56091", + "198.51.100.3:56091" + ], + "Hostinfo": {"Hostname": "t-spent", "Services": [ + {"Proto": "peerapi4", "Port": 56022}, + {"Proto": "peerapi6", "Port": 56022}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:32.40441946Z", + "Tags": ["tag:prod"], + "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": "t-spent", + "ComputedNameWithHost": "t-spent" + }, + "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:564b02622a6d51ee3e17e36c6548fb4e5b49a3a602c04a581330f9ddfdb3a03b", + "MachineKey": "mkey:9050d211df180cfdc2bb1a705184f559343446e2371db643d9710dee0a3c845d", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4117322770420761": { + "ID": 4117322770420761, + "LoginName": "t-spent.tail78f774.ts.net", + "DisplayName": "t-spent" + }} + }, + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:K1} not valid" + }}, + "register": {"t-spent": [ + { + "err": "register request: Post \"https://controlplane.tailscale.com/machine/register\": context canceled" + }, + { + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 2291}, + {"err": "invalid key: API key {key:K1} not valid", "offset_ms": 2291}, + {"node_key_expired": false, "machine_authorized": false, "offset_ms": 7291}, + {"err": "invalid key: API key {key:K1} not valid", "offset_ms": 7291}, + {"node_key": "{nodekey:6}", "old_node_key": "{nodekey:2}", "offset_ms": 7291} + ]} + }, { + "name": "late-pak-spent-key", + "at": "2026-10-17T17:58:08.716456743Z", + "result": "expected-refusal", + "actions": [{"kind": "retire", "node": "t-spent"}, { + "kind": "join", + "node": "late-pak", + "key": "K1", + "hostname": "late-pak", + "offset_ms": 187 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:12Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3430 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K1}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:57:32Z", + "description": "tscap-saasprobe K1", + "expires": "2026-10-17T18:57:32Z", + "expirySeconds": 3600, + "id": "{key:K1}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:57:32Z", + "userId": "{user:odin}" + }, + "offset_ms": 3446 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }]}, + "offset_ms": 3463 + }], + "captures": {"late-pak": { + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:K1} not valid" + }, "obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"late-pak": [ + { + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": false + }, + {"err": "invalid key: API key {key:K1} not valid", "offset_ms": 283}, + { + "node_key": "{nodekey:8}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 283 + }, + {"err": "invalid key: API key {key:K1} not valid", "offset_ms": 5283}, + {"node_key": "{nodekey:9}", "offset_ms": 5283} + ]} + }, { + "name": "t-valid-join", + "at": "2026-10-17T17:58:16.212117083Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "late-pak"}, { + "kind": "api", + "key": "K2", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K2", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 41 + }, { + "kind": "join", + "node": "t-valid", + "key": "K2", + "hostname": "t-valid", + "offset_ms": 182 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:20Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.99.144.0", "fd7a:115c:a1e0::2e28:9001"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39431", + "192.0.2.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], "latency": { + "Amsterdam": {"latencyMs": 9.7082, "preferred": true}, + "Ashburn": {"latencyMs": 99.053393}, + "Bengaluru": {"latencyMs": 220.598177}, + "Chicago": {"latencyMs": 112.564442}, + "Dallas": {"latencyMs": 125.903092}, + "Denver": {"latencyMs": 135.08292799999998}, + "Dubai": {"latencyMs": 116.94568199999999}, + "Frankfurt": {"latencyMs": 18.099321000000003}, + "Helsinki": {"latencyMs": 37.190989}, + "Hong Kong": {"latencyMs": 196.607707}, + "Honolulu": {"latencyMs": 225.217174}, + "Johannesburg": {"latencyMs": 191.994383}, + "London": {"latencyMs": 17.517058}, + "Los Angeles": {"latencyMs": 144.587144}, + "Madrid": {"latencyMs": 34.851048000000006}, + "Miami": {"latencyMs": 122.233645}, + "Nairobi": {"latencyMs": 161.847852}, + "New York City": {"latencyMs": 87.48516000000001}, + "Nuremberg": {"latencyMs": 20.957728}, + "Paris": {"latencyMs": 19.10644}, + "San Francisco": {"latencyMs": 157.755811}, + "Seattle": {"latencyMs": 144.23333399999999}, + "Tokyo": {"latencyMs": 241.956808}, + "Toronto": {"latencyMs": 120.805733}, + "Warsaw": {"latencyMs": 28.952483} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:17Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:58:17Z", + "hostname": "t-valid", + "id": "{device:t-valid}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:20Z", + "machineKey": "{machine:t-valid}", + "name": "t-valid.tail78f774.ts.net", + "nodeId": "{device:t-valid}", + "nodeKey": "{nodekey:10}", + "oauthClientId": "{key:K2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3ffb46708f4bc2ba9982fc3b7abc5ddb0f11402fb3427902764fade595e6f11a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3792 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3808 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3825 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Endpoints": [ + "192.0.2.1:39431", + "198.51.100.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-valid", "Services": [ + {"Proto": "peerapi4", "Port": 42609}, + {"Proto": "peerapi6", "Port": 42609} + ]}, + "Created": "2026-10-17T17:58:16.531792463Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-valid", + "ComputedNameWithHost": "t-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-valid": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 4401505774348077, + "Key": "nodekey:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Hostinfo": { + "Hostname": "t-valid", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:58:16.531792463Z", + "Tags": ["tag:prod"], + "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": "t-valid", + "ComputedNameWithHost": "t-valid" + }, + "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:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "MachineKey": "mkey:2d3e6d590a8e6230b7edc3e57e4b24b5a4e3d176b752b593e1dfbe9367046368", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4401505774348077": { + "ID": 4401505774348077, + "LoginName": "t-valid.tail78f774.ts.net", + "DisplayName": "t-valid" + }} + }, "backend_state": "Running"}}, + "register": {"t-valid": [{ + "node_key": "{nodekey:10}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-valid-expire", + "at": "2026-10-17T17:58:24.073229799Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-valid}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:t-valid}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.99.144.0", "fd7a:115c:a1e0::2e28:9001"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39431", + "192.0.2.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], "latency": { + "Amsterdam": {"latencyMs": 9.7082, "preferred": true}, + "Ashburn": {"latencyMs": 99.053393}, + "Bengaluru": {"latencyMs": 220.598177}, + "Chicago": {"latencyMs": 112.564442}, + "Dallas": {"latencyMs": 125.903092}, + "Denver": {"latencyMs": 135.08292799999998}, + "Dubai": {"latencyMs": 116.94568199999999}, + "Frankfurt": {"latencyMs": 18.099321000000003}, + "Helsinki": {"latencyMs": 37.190989}, + "Hong Kong": {"latencyMs": 196.607707}, + "Honolulu": {"latencyMs": 225.217174}, + "Johannesburg": {"latencyMs": 191.994383}, + "London": {"latencyMs": 17.517058}, + "Los Angeles": {"latencyMs": 144.587144}, + "Madrid": {"latencyMs": 34.851048000000006}, + "Miami": {"latencyMs": 122.233645}, + "Nairobi": {"latencyMs": 161.847852}, + "New York City": {"latencyMs": 87.48516000000001}, + "Nuremberg": {"latencyMs": 20.957728}, + "Paris": {"latencyMs": 19.10644}, + "San Francisco": {"latencyMs": 157.755811}, + "Seattle": {"latencyMs": 144.23333399999999}, + "Tokyo": {"latencyMs": 241.956808}, + "Toronto": {"latencyMs": 120.805733}, + "Warsaw": {"latencyMs": 28.952483} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:17Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:23Z", + "hostname": "t-valid", + "id": "{device:t-valid}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:24Z", + "machineKey": "{machine:t-valid}", + "name": "t-valid.tail78f774.ts.net", + "nodeId": "{device:t-valid}", + "nodeKey": "{nodekey:10}", + "oauthClientId": "{key:K2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3ffb46708f4bc2ba9982fc3b7abc5ddb0f11402fb3427902764fade595e6f11a", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 19 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-valid}/key", + "header": {"Content-Type": "application/json"}, + "body": {"keyExpiryDisabled": false}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 37 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-valid}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2019 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:31Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.99.144.0", "fd7a:115c:a1e0::2e28:9001"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39431", + "192.0.2.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], "latency": { + "Amsterdam": {"latencyMs": 9.7082, "preferred": true}, + "Ashburn": {"latencyMs": 99.053393}, + "Bengaluru": {"latencyMs": 220.598177}, + "Chicago": {"latencyMs": 112.564442}, + "Dallas": {"latencyMs": 125.903092}, + "Denver": {"latencyMs": 135.08292799999998}, + "Dubai": {"latencyMs": 116.94568199999999}, + "Frankfurt": {"latencyMs": 18.099321000000003}, + "Helsinki": {"latencyMs": 37.190989}, + "Hong Kong": {"latencyMs": 196.607707}, + "Honolulu": {"latencyMs": 225.217174}, + "Johannesburg": {"latencyMs": 191.994383}, + "London": {"latencyMs": 17.517058}, + "Los Angeles": {"latencyMs": 144.587144}, + "Madrid": {"latencyMs": 34.851048000000006}, + "Miami": {"latencyMs": 122.233645}, + "Nairobi": {"latencyMs": 161.847852}, + "New York City": {"latencyMs": 87.48516000000001}, + "Nuremberg": {"latencyMs": 20.957728}, + "Paris": {"latencyMs": 19.10644}, + "San Francisco": {"latencyMs": 157.755811}, + "Seattle": {"latencyMs": 144.23333399999999}, + "Tokyo": {"latencyMs": 241.956808}, + "Toronto": {"latencyMs": 120.805733}, + "Warsaw": {"latencyMs": 28.952483} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:17Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:27Z", + "hostname": "t-valid", + "id": "{device:t-valid}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:58:31Z", + "machineKey": "{machine:t-valid}", + "name": "t-valid.tail78f774.ts.net", + "nodeId": "{device:t-valid}", + "nodeKey": "{nodekey:10}", + "oauthClientId": "{key:K2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3ffb46708f4bc2ba9982fc3b7abc5ddb0f11402fb3427902764fade595e6f11a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7116 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "KeyExpiry": "2026-10-17T17:58:27Z", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-valid", "Services": [ + {"Proto": "peerapi4", "Port": 42609}, + {"Proto": "peerapi6", "Port": 42609} + ]}, + "Created": "2026-10-17T17:58:16.531792463Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-valid", + "ComputedNameWithHost": "t-valid", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-valid": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 4401505774348077, + "Key": "nodekey:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "KeyExpiry": "2026-10-17T17:58:27Z", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Endpoints": [ + "192.0.2.1:39431", + "198.51.100.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], + "Hostinfo": {"Hostname": "t-valid", "Services": [ + {"Proto": "peerapi4", "Port": 42609}, + {"Proto": "peerapi6", "Port": 42609}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:58:16.531792463Z", + "Tags": ["tag:prod"], + "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": "t-valid", + "ComputedNameWithHost": "t-valid" + }, + "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:78827354daab93eae15027ed70cee459504905dcb927188dd24123382e639000", + "MachineKey": "mkey:2d3e6d590a8e6230b7edc3e57e4b24b5a4e3d176b752b593e1dfbe9367046368", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4401505774348077": { + "ID": 4401505774348077, + "LoginName": "t-valid.tail78f774.ts.net", + "DisplayName": "t-valid" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-valid-relogin", + "at": "2026-10-17T17:58:35.21889768Z", + "result": "observed", + "actions": [{"kind": "relogin", "node": "t-valid", "key": "K2", "hostname": "t-valid"}, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:39Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.99.144.0", "fd7a:115c:a1e0::2e28:9001"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:39431", + "192.0.2.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], "latency": { + "Amsterdam": {"latencyMs": 11.525498, "preferred": true}, + "Frankfurt": {"latencyMs": 16.932976999999998}, + "London": {"latencyMs": 15.615989} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:17Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:58:36Z", + "hostname": "t-valid", + "id": "{device:t-valid}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:35Z", + "machineKey": "{machine:t-valid}", + "name": "t-valid.tail78f774.ts.net", + "nodeId": "{device:t-valid}", + "nodeKey": "{nodekey:11}", + "oauthClientId": "{key:K2}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:3ffb46708f4bc2ba9982fc3b7abc5ddb0f11402fb3427902764fade595e6f11a", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3859 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K2}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3876 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3892 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:15ffd8bb3d2298ed61dd0aa1adfa19d4e92a0d7624e3f617342675f66c5a3101", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Endpoints": [ + "192.0.2.1:39431", + "198.51.100.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-valid", "Services": [ + {"Proto": "peerapi4", "Port": 42609}, + {"Proto": "peerapi6", "Port": 42609} + ]}, + "Created": "2026-10-17T17:58:16.531792463Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-valid", + "ComputedNameWithHost": "t-valid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-valid": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4401505774348077, + "StableID": "nEKn2Q6TNb11CNTRL", + "Name": "t-valid.tail78f774.ts.net.", + "User": 4401505774348077, + "Key": "nodekey:15ffd8bb3d2298ed61dd0aa1adfa19d4e92a0d7624e3f617342675f66c5a3101", + "DiscoKey": "discokey:c88b0a3e86bcbec50b6d76ca29facf5e09789b3463bdffa0de4934232ee6da1d", + "Addresses": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "AllowedIPs": ["100.99.144.0/32", "fd7a:115c:a1e0::2e28:9001/128"], + "Endpoints": [ + "192.0.2.1:39431", + "198.51.100.1:39431", + "198.51.100.2:39431", + "198.51.100.3:39431" + ], + "Hostinfo": {"Hostname": "t-valid", "Services": [ + {"Proto": "peerapi4", "Port": 42609}, + {"Proto": "peerapi6", "Port": 42609}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:58:16.531792463Z", + "Tags": ["tag:prod"], + "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": "t-valid", + "ComputedNameWithHost": "t-valid" + }, + "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:15ffd8bb3d2298ed61dd0aa1adfa19d4e92a0d7624e3f617342675f66c5a3101", + "MachineKey": "mkey:2d3e6d590a8e6230b7edc3e57e4b24b5a4e3d176b752b593e1dfbe9367046368", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4401505774348077": { + "ID": 4401505774348077, + "LoginName": "t-valid.tail78f774.ts.net", + "DisplayName": "t-valid" + }} + }, "backend_state": "Running"}}, + "register": {"t-valid": [{ + "node_key": "{nodekey:10}", + "node_key_expired": true, + "machine_authorized": true + }, { + "node_key": "{nodekey:11}", + "old_node_key": "{nodekey:10}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "t-revoked-join", + "at": "2026-10-17T17:58:43.143522689Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-valid"}, { + "kind": "api", + "key": "K4", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, "description": "tscap-saasprobe K4", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:45Z", + "description": "tscap-saasprobe K4", + "expires": "2026-10-17T18:58:45Z", + "expirySeconds": 3600, + "id": "{key:K4}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 77 + }, { + "kind": "join", + "node": "t-revoked", + "key": "K4", + "hostname": "t-revoked", + "offset_ms": 2173 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:49Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.231.12", "fd7a:115c:a1e0::f028:e70d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50879", + "192.0.2.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], "latency": { + "Amsterdam": {"latencyMs": 12.931629000000001, "preferred": true}, + "Ashburn": {"latencyMs": 99.53107299999999}, + "Bengaluru": {"latencyMs": 223.165195}, + "Chicago": {"latencyMs": 113.495603}, + "Dallas": {"latencyMs": 125.518291}, + "Denver": {"latencyMs": 138.577089}, + "Dubai": {"latencyMs": 115.0966}, + "Frankfurt": {"latencyMs": 18.859829}, + "Helsinki": {"latencyMs": 37.57326}, + "Hong Kong": {"latencyMs": 195.204758}, + "Honolulu": {"latencyMs": 206.23611499999998}, + "Johannesburg": {"latencyMs": 179.433031}, + "London": {"latencyMs": 17.709871}, + "Los Angeles": {"latencyMs": 143.28315}, + "Madrid": {"latencyMs": 37.642212}, + "Miami": {"latencyMs": 120.690133}, + "Nairobi": {"latencyMs": 174.54478600000002}, + "New York City": {"latencyMs": 87.624267}, + "Nuremberg": {"latencyMs": 24.731051}, + "Paris": {"latencyMs": 18.055257}, + "San Francisco": {"latencyMs": 157.756139}, + "Seattle": {"latencyMs": 143.801934}, + "Tokyo": {"latencyMs": 239.031845}, + "Toronto": {"latencyMs": 118.77226}, + "Warsaw": {"latencyMs": 29.397836} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:45Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:58:45Z", + "hostname": "t-revoked", + "id": "{device:t-revoked}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:49Z", + "machineKey": "{machine:t-revoked}", + "name": "t-revoked.tail78f774.ts.net", + "nodeId": "{device:t-revoked}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:54ce544c114e51a958168f0857184bf5fe483073d8d9835c5f9fe6f0193820f5", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5780 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K4}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:45Z", + "description": "tscap-saasprobe K4", + "expires": "2026-10-17T18:58:45Z", + "expirySeconds": 3600, + "id": "{key:K4}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 5798 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:45Z", + "description": "tscap-saasprobe K4", + "expires": "2026-10-17T18:58:45Z", + "expirySeconds": 3600, + "id": "{key:K4}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 5814 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Endpoints": [ + "192.0.2.1:50879", + "198.51.100.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-revoked", + "ComputedNameWithHost": "t-revoked" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-revoked": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 4821586912260848, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Hostinfo": { + "Hostname": "t-revoked", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T17:58:45.455776619Z", + "Tags": ["tag:prod"], + "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": "t-revoked", + "ComputedNameWithHost": "t-revoked" + }, + "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:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "MachineKey": "mkey:2b2b64a20d0d55ac002754e3c5265a0aef37884e11f2a95055df4144fbf74f33", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4821586912260848": { + "ID": 4821586912260848, + "LoginName": "t-revoked.tail78f774.ts.net", + "DisplayName": "t-revoked" + }} + }, "backend_state": "Running"}}, + "register": {"t-revoked": [{ + "node_key": "{nodekey:12}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 1856 + }]} + }, { + "name": "t-revoked-expire", + "at": "2026-10-17T17:58:52.994846821Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-revoked}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/device/{device:t-revoked}?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "addresses": ["100.77.231.12", "fd7a:115c:a1e0::f028:e70d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50879", + "192.0.2.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], "latency": { + "Amsterdam": {"latencyMs": 12.931629000000001, "preferred": true}, + "Ashburn": {"latencyMs": 99.53107299999999}, + "Bengaluru": {"latencyMs": 223.165195}, + "Chicago": {"latencyMs": 113.495603}, + "Dallas": {"latencyMs": 125.518291}, + "Denver": {"latencyMs": 138.577089}, + "Dubai": {"latencyMs": 115.0966}, + "Frankfurt": {"latencyMs": 18.859829}, + "Helsinki": {"latencyMs": 37.57326}, + "Hong Kong": {"latencyMs": 195.204758}, + "Honolulu": {"latencyMs": 206.23611499999998}, + "Johannesburg": {"latencyMs": 179.433031}, + "London": {"latencyMs": 17.709871}, + "Los Angeles": {"latencyMs": 143.28315}, + "Madrid": {"latencyMs": 37.642212}, + "Miami": {"latencyMs": 120.690133}, + "Nairobi": {"latencyMs": 174.54478600000002}, + "New York City": {"latencyMs": 87.624267}, + "Nuremberg": {"latencyMs": 24.731051}, + "Paris": {"latencyMs": 18.055257}, + "San Francisco": {"latencyMs": 157.756139}, + "Seattle": {"latencyMs": 143.801934}, + "Tokyo": {"latencyMs": 239.031845}, + "Toronto": {"latencyMs": 118.77226}, + "Warsaw": {"latencyMs": 29.397836} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:45Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:52Z", + "hostname": "t-revoked", + "id": "{device:t-revoked}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:58:53Z", + "machineKey": "{machine:t-revoked}", + "name": "t-revoked.tail78f774.ts.net", + "nodeId": "{device:t-revoked}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:54ce544c114e51a958168f0857184bf5fe483073d8d9835c5f9fe6f0193820f5", + "updateAvailable": true, + "user": "odin@example.com" + }, + "offset_ms": 17 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-revoked}/key", + "header": {"Content-Type": "application/json"}, + "body": {"keyExpiryDisabled": false}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 35 + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/device/{device:t-revoked}/expire", + "header": {"Content-Type": "application/json"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2021 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:00Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.231.12", "fd7a:115c:a1e0::f028:e70d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50879", + "192.0.2.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], "latency": { + "Amsterdam": {"latencyMs": 12.931629000000001, "preferred": true}, + "Ashburn": {"latencyMs": 99.53107299999999}, + "Bengaluru": {"latencyMs": 223.165195}, + "Chicago": {"latencyMs": 113.495603}, + "Dallas": {"latencyMs": 125.518291}, + "Denver": {"latencyMs": 138.577089}, + "Dubai": {"latencyMs": 115.0966}, + "Frankfurt": {"latencyMs": 18.859829}, + "Helsinki": {"latencyMs": 37.57326}, + "Hong Kong": {"latencyMs": 195.204758}, + "Honolulu": {"latencyMs": 206.23611499999998}, + "Johannesburg": {"latencyMs": 179.433031}, + "London": {"latencyMs": 17.709871}, + "Los Angeles": {"latencyMs": 143.28315}, + "Madrid": {"latencyMs": 37.642212}, + "Miami": {"latencyMs": 120.690133}, + "Nairobi": {"latencyMs": 174.54478600000002}, + "New York City": {"latencyMs": 87.624267}, + "Nuremberg": {"latencyMs": 24.731051}, + "Paris": {"latencyMs": 18.055257}, + "San Francisco": {"latencyMs": 157.756139}, + "Seattle": {"latencyMs": 143.801934}, + "Tokyo": {"latencyMs": 239.031845}, + "Toronto": {"latencyMs": 118.77226}, + "Warsaw": {"latencyMs": 29.397836} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:45Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:56Z", + "hostname": "t-revoked", + "id": "{device:t-revoked}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:59:00Z", + "machineKey": "{machine:t-revoked}", + "name": "t-revoked.tail78f774.ts.net", + "nodeId": "{device:t-revoked}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:54ce544c114e51a958168f0857184bf5fe483073d8d9835c5f9fe6f0193820f5", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 7127 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-revoked", + "ComputedNameWithHost": "t-revoked", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-revoked": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 4821586912260848, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Endpoints": [ + "192.0.2.1:50879", + "198.51.100.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], + "Hostinfo": {"Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Tags": ["tag:prod"], + "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": "t-revoked", + "ComputedNameWithHost": "t-revoked" + }, + "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:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "MachineKey": "mkey:2b2b64a20d0d55ac002754e3c5265a0aef37884e11f2a95055df4144fbf74f33", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4821586912260848": { + "ID": 4821586912260848, + "LoginName": "t-revoked.tail78f774.ts.net", + "DisplayName": "t-revoked" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-revoked-delete-key", + "at": "2026-10-17T17:59:04.151829624Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:K4}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:07Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.231.12", "fd7a:115c:a1e0::f028:e70d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50879", + "192.0.2.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], "latency": { + "Amsterdam": {"latencyMs": 12.931629000000001, "preferred": true}, + "Ashburn": {"latencyMs": 99.53107299999999}, + "Bengaluru": {"latencyMs": 223.165195}, + "Chicago": {"latencyMs": 113.495603}, + "Dallas": {"latencyMs": 125.518291}, + "Denver": {"latencyMs": 138.577089}, + "Dubai": {"latencyMs": 115.0966}, + "Frankfurt": {"latencyMs": 18.859829}, + "Helsinki": {"latencyMs": 37.57326}, + "Hong Kong": {"latencyMs": 195.204758}, + "Honolulu": {"latencyMs": 206.23611499999998}, + "Johannesburg": {"latencyMs": 179.433031}, + "London": {"latencyMs": 17.709871}, + "Los Angeles": {"latencyMs": 143.28315}, + "Madrid": {"latencyMs": 37.642212}, + "Miami": {"latencyMs": 120.690133}, + "Nairobi": {"latencyMs": 174.54478600000002}, + "New York City": {"latencyMs": 87.624267}, + "Nuremberg": {"latencyMs": 24.731051}, + "Paris": {"latencyMs": 18.055257}, + "San Francisco": {"latencyMs": 157.756139}, + "Seattle": {"latencyMs": 143.801934}, + "Tokyo": {"latencyMs": 239.031845}, + "Toronto": {"latencyMs": 118.77226}, + "Warsaw": {"latencyMs": 29.397836} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:45Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:56Z", + "hostname": "t-revoked", + "id": "{device:t-revoked}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:59:07Z", + "machineKey": "{machine:t-revoked}", + "name": "t-revoked.tail78f774.ts.net", + "nodeId": "{device:t-revoked}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:54ce544c114e51a958168f0857184bf5fe483073d8d9835c5f9fe6f0193820f5", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3098 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K4}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:45Z", + "description": "tscap-saasprobe K4", + "expires": "2026-10-17T18:58:45Z", + "expirySeconds": 3600, + "id": "{key:K4}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:59:04Z", + "userId": "{user:odin}" + }, + "offset_ms": 3116 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3133 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-revoked", + "ComputedNameWithHost": "t-revoked", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-revoked": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 4821586912260848, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Endpoints": [ + "192.0.2.1:50879", + "198.51.100.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], + "Hostinfo": {"Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Tags": ["tag:prod"], + "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": "t-revoked", + "ComputedNameWithHost": "t-revoked" + }, + "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:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "MachineKey": "mkey:2b2b64a20d0d55ac002754e3c5265a0aef37884e11f2a95055df4144fbf74f33", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4821586912260848": { + "ID": 4821586912260848, + "LoginName": "t-revoked.tail78f774.ts.net", + "DisplayName": "t-revoked" + }} + }, "backend_state": "NeedsLogin"}} + }, { + "name": "t-revoked-relogin", + "at": "2026-10-17T17:59:11.310201901Z", + "result": "expected-refusal", + "actions": [ + {"kind": "relogin", "node": "t-revoked", "key": "K4", "hostname": "t-revoked"}, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50241", + "192.0.2.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], "latency": { + "Amsterdam": {"latencyMs": 11.312723, "preferred": true}, + "Ashburn": {"latencyMs": 100.08015300000001}, + "Bengaluru": {"latencyMs": 149.563622}, + "Chicago": {"latencyMs": 112.420158}, + "Dallas": {"latencyMs": 125.546243}, + "Denver": {"latencyMs": 134.319461}, + "Dubai": {"latencyMs": 116.459114}, + "Frankfurt": {"latencyMs": 16.381682}, + "Helsinki": {"latencyMs": 36.325078}, + "Hong Kong": {"latencyMs": 195.41963900000002}, + "Honolulu": {"latencyMs": 208.54772599999998}, + "Johannesburg": {"latencyMs": 190.03670400000001}, + "London": {"latencyMs": 16.325583}, + "Los Angeles": {"latencyMs": 143.978889}, + "Madrid": {"latencyMs": 34.779017}, + "Miami": {"latencyMs": 120.481832}, + "Nairobi": {"latencyMs": 161.83546900000002}, + "New York City": {"latencyMs": 90.266147}, + "Nuremberg": {"latencyMs": 20.805096}, + "Paris": {"latencyMs": 19.447613}, + "San Francisco": {"latencyMs": 158.091408}, + "Seattle": {"latencyMs": 143.902148}, + "Tokyo": {"latencyMs": 244.050871}, + "Toronto": {"latencyMs": 118.282269}, + "Warsaw": {"latencyMs": 29.498645} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:57:28Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T17:57:28Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T17:59:15Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:16ce04f8e6c4ee12f3e74fc393b19fa92046c9aeb47a9c4bf8b30b16b6bd9776", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.77.231.12", "fd7a:115c:a1e0::f028:e70d"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:50879", + "192.0.2.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], "latency": { + "Amsterdam": {"latencyMs": 12.931629000000001, "preferred": true}, + "Ashburn": {"latencyMs": 99.53107299999999}, + "Bengaluru": {"latencyMs": 223.165195}, + "Chicago": {"latencyMs": 113.495603}, + "Dallas": {"latencyMs": 125.518291}, + "Denver": {"latencyMs": 138.577089}, + "Dubai": {"latencyMs": 115.0966}, + "Frankfurt": {"latencyMs": 18.859829}, + "Helsinki": {"latencyMs": 37.57326}, + "Hong Kong": {"latencyMs": 195.204758}, + "Honolulu": {"latencyMs": 206.23611499999998}, + "Johannesburg": {"latencyMs": 179.433031}, + "London": {"latencyMs": 17.709871}, + "Los Angeles": {"latencyMs": 143.28315}, + "Madrid": {"latencyMs": 37.642212}, + "Miami": {"latencyMs": 120.690133}, + "Nairobi": {"latencyMs": 174.54478600000002}, + "New York City": {"latencyMs": 87.624267}, + "Nuremberg": {"latencyMs": 24.731051}, + "Paris": {"latencyMs": 18.055257}, + "San Francisco": {"latencyMs": 157.756139}, + "Seattle": {"latencyMs": 143.801934}, + "Tokyo": {"latencyMs": 239.031845}, + "Toronto": {"latencyMs": 118.77226}, + "Warsaw": {"latencyMs": 29.397836} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T17:58:45Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2026-10-17T17:58:56Z", + "hostname": "t-revoked", + "id": "{device:t-revoked}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T17:59:15Z", + "machineKey": "{machine:t-revoked}", + "name": "t-revoked.tail78f774.ts.net", + "nodeId": "{device:t-revoked}", + "nodeKey": "{nodekey:12}", + "oauthClientId": "{key:K4}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:prod"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:54ce544c114e51a958168f0857184bf5fe483073d8d9835c5f9fe6f0193820f5", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3563 + }, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:K4}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:45Z", + "description": "tscap-saasprobe K4", + "expires": "2026-10-17T18:58:45Z", + "expirySeconds": 3600, + "id": "{key:K4}", + "invalid": true, + "keyType": "auth", + "revoked": "2026-10-17T17:59:04Z", + "userId": "{user:odin}" + }, + "offset_ms": 3580 + }, + { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:prod"] + }}}, + "created": "2026-10-17T17:58:16Z", + "description": "tscap-saasprobe K2", + "expires": "2026-10-17T18:58:16Z", + "expirySeconds": 3600, + "id": "{key:K2}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3596 + } + ], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1631235846200752, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "MachineKey": "mkey:139e537cdbc2dddfdddcd528db90058a387939a3e3436d0e30427d4b36a07008", + "Peers": [{ + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Hostinfo": {"OS": "linux", "Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Cap": 142, + "Tags": ["tag:prod"], + "Online": true, + "ComputedName": "t-revoked", + "ComputedNameWithHost": "t-revoked", + "Expired": true + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "1631235846200752": { + "ID": 1631235846200752, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-revoked": { + "packet_filter_rules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "netmap": { + "Cached": false, + "SelfNode": { + "ID": 4821586912260848, + "StableID": "nbitguuhee11CNTRL", + "Name": "t-revoked.tail78f774.ts.net.", + "User": 4821586912260848, + "Key": "nodekey:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "KeyExpiry": "2026-10-17T17:58:56Z", + "DiscoKey": "discokey:a722eda9e894c19d3ba0931af52d246781fa2bae56574ab3f30694a6fb08b337", + "Addresses": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "AllowedIPs": ["100.77.231.12/32", "fd7a:115c:a1e0::f028:e70d/128"], + "Endpoints": [ + "192.0.2.1:50879", + "198.51.100.1:50879", + "198.51.100.2:50879", + "198.51.100.3:50879" + ], + "Hostinfo": {"Hostname": "t-revoked", "Services": [ + {"Proto": "peerapi4", "Port": 61057}, + {"Proto": "peerapi6", "Port": 61057}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T17:58:45.455776619Z", + "Tags": ["tag:prod"], + "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": "t-revoked", + "ComputedNameWithHost": "t-revoked" + }, + "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:7738eb8914e80143341aeabbf8c9fc630c639f76a92a95aa551b11cdf08de70c", + "MachineKey": "mkey:2b2b64a20d0d55ac002754e3c5265a0aef37884e11f2a95055df4144fbf74f33", + "Peers": [{ + "ID": 1631235846200752, + "StableID": "nV3opNonjD11CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:ad5d63d6338fe5594f61d9e588ea414352d901459ffd7a28473849e215db8646", + "DiscoKey": "discokey:485145d276d0c0dd816c4b7118b7229b28b0d11a1bb79b9b5c16c082b1af0260", + "Addresses": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "AllowedIPs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "Endpoints": [ + "192.0.2.1:50241", + "198.51.100.1:50241", + "198.51.100.2:50241", + "198.51.100.3:50241" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 49963}, + {"Proto": "peerapi6", "Port": 49963} + ]}, + "Created": "2026-10-17T17:57:27.685300617Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.91.134.70/32", "fd7a:115c:a1e0::1528:8647/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.91.134.70", "fd7a:115c:a1e0::1528:8647"], + "DstPorts": [{"IP": "*", "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" + }, "4821586912260848": { + "ID": 4821586912260848, + "LoginName": "t-revoked.tail78f774.ts.net", + "DisplayName": "t-revoked" + }} + }, + "backend_state": "NeedsLogin", + "err_message": "invalid key: API key {key:K4} not valid" + }}, + "register": {"t-revoked": [{ + "node_key": "{nodekey:12}", + "node_key_expired": true, + "machine_authorized": true + }, { + "node_key": "{nodekey:13}", + "old_node_key": "{nodekey:12}", + "node_key_expired": false, + "machine_authorized": false + }, {"err": "invalid key: API key {key:K4} not valid"}, { + "node_key": "{nodekey:12}", + "node_key_expired": true, + "machine_authorized": true + }, { + "node_key": "{nodekey:14}", + "old_node_key": "{nodekey:12}", + "node_key_expired": false, + "machine_authorized": false + }, {"err": "invalid key: API key {key:K4} not valid", "offset_ms": 4689}, { + "node_key": "{nodekey:12}", + "node_key_expired": true, + "machine_authorized": true, + "offset_ms": 4689 + }, { + "node_key": "{nodekey:15}", + "old_node_key": "{nodekey:12}", + "offset_ms": 4689 + }]} + }, { + "name": "teardown", + "at": "2026-10-17T17:59:18.930125048Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-revoked"}] + }] +} diff --git a/hscontrol/servertest/testdata/steps/tag-owner-chain.hujson b/hscontrol/servertest/testdata/steps/tag-owner-chain.hujson new file mode 100644 index 000000000..57e9c7459 --- /dev/null +++ b/hscontrol/servertest/testdata/steps/tag-owner-chain.hujson @@ -0,0 +1,4901 @@ +// tag-owner-chain +// +// Who may apply a tag owned through other tags: thor's key, joins, re-authentication, a tagged key and OAuth clients. +// +// Nodes with filter rules: 1 of 1 +// Steps: 28 +// Captured at: 2026-10-17T18:17:58Z +// tool version: saasprobe 905784d032b0737ca66722cdfa7b038cffe236dc +// schema version: 1 +{ + "schema_version": 1, + "test_id": "tag-owner-chain", + "description": "Who may apply a tag owned through other tags: thor's key, joins, re-authentication, a tagged key and OAuth clients.", + "captured_at": "2026-10-17T18:17:58.541532779Z", + "tool_version": "saasprobe 905784d032b0737ca66722cdfa7b038cffe236dc", + "client_version": "1.102.5-ERR-BuildInfo capver 142", + "tailnet": "odin@example.com", + "input": { + "api_response_code": 200, + "tailnet": { + "dns": {"magic_dns": false, "nameservers": [], "search_paths": [], "split_dns": {}}, + "settings": { + "devices_approval_on": false, + "devices_auto_updates_on": false, + "devices_key_duration_days": 180, + "network_flow_logging_on": false, + "regional_routing_on": false, + "posture_identity_collection_on": false + } + }, + "scenario_hujson": "", + "full_policy": {"groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:prod": ["odin@example.com"], + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:server": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-mid": ["tag:own-base"], + "tag:own-top": ["tag:own-mid"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-grp": ["group:own"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-other": ["freya@example.com"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"] + }, "acls": [ + {"action": "accept", "src": ["tag:observer"], "dst": ["*:*"]}, + {"action": "accept", "src": ["autogroup:member"], "dst": ["*:*"]}, + {"action": "accept", "src": ["tag:prod"], "dst": ["tag:server:5432"]}, + {"action": "accept", "src": ["tag:server"], "dst": ["autogroup:member:*"]} + ]} + }, + "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": {"obs": { + "hostname": "obs", + "tags": ["tag:observer"], + "ipv4": "100.123.209.67", + "ipv6": "fd7a:115c:a1e0::e928:d144", + "routable_ips": [], + "approved_routes": [] + }, "t-mid": { + "hostname": "t-mid", + "tags": ["tag:own-mid"], + "ipv4": "100.110.29.125", + "ipv6": "fd7a:115c:a1e0::b528:1d7e", + "routable_ips": [], + "approved_routes": [] + }, "u-base": { + "hostname": "u-base", + "tags": ["tag:own-base"], + "ipv4": "100.76.5.81", + "ipv6": "fd7a:115c:a1e0::a928:552", + "routable_ips": [], + "approved_routes": [] + }, "u-re": { + "hostname": "u-re", + "tags": [], + "ipv4": "100.79.243.99", + "ipv6": "fd7a:115c:a1e0::ef28:f364", + "user": "thor", + "routable_ips": [], + "approved_routes": [] + }}}, + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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": {"8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "node_ids": { + "obs": 8768095475240276, + "t-mid": 8470221155761475, + "u-base": 2007848593188117, + "u-re": 6350183221217456 + }, + "steps": [{ + "name": "setup", + "at": "2026-10-17T18:17:58.54154785Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/acl", + "header": {"Content-Type": "application/json"}, + "body": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }}, + "status": 200, + "resp_header": {"Content-Type": "application/hujson", "ETag": "{etag:1}"}, + "response": {"acls": [ + {"action": "accept", "dst": ["*:*"], "src": ["tag:observer"]}, + {"action": "accept", "dst": ["*:*"], "src": ["autogroup:member"]}, + {"action": "accept", "dst": ["tag:server:5432"], "src": ["tag:prod"]}, + {"action": "accept", "dst": ["autogroup:member:*"], "src": ["tag:server"]} + ], "groups": {"group:own": ["thor@example.org"]}, "tagOwners": { + "tag:ci": ["odin@example.com"], + "tag:observer": ["odin@example.com"], + "tag:own-base": ["thor@example.org"], + "tag:own-cyc1": ["tag:own-cyc2", "thor@example.org"], + "tag:own-cyc2": ["tag:own-cyc1"], + "tag:own-da": ["tag:own-base"], + "tag:own-db": ["tag:own-base"], + "tag:own-dtop": ["tag:own-da", "tag:own-db"], + "tag:own-gmid": ["tag:own-grp"], + "tag:own-grp": ["group:own"], + "tag:own-mid": ["tag:own-base"], + "tag:own-mixed": ["tag:own-other", "tag:own-base"], + "tag:own-other": ["freya@example.com"], + "tag:own-top": ["tag:own-mid"], + "tag:prod": ["odin@example.com"], + "tag:server": ["odin@example.com"] + }} + }, { + "kind": "api", + "key": "Kobs", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, "description": "tscap-saasprobe Kobs", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:observer"] + }}}, + "created": "2026-10-17T18:18:03Z", + "description": "tscap-saasprobe Kobs", + "expires": "2026-10-17T19:18:03Z", + "expirySeconds": 3600, + "id": "{key:Kobs}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 1998 + }, { + "kind": "join", + "node": "obs", + "key": "Kobs", + "hostname": "obs", + "offset_ms": 4111 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Hostinfo": { + "Hostname": "obs", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": {"8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}}, + "register": {"obs": [{ + "node_key": "{nodekey:1}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 3458 + }]} + }, { + "name": "thor-join-keys", + "at": "2026-10-17T18:18:07.20427055Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "thor-join-base", + "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 thor-join-base", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:07Z", + "description": "tscap-saasprobe thor-join-base", + "expires": "2026-10-17T19:18:07Z", + "expirySeconds": 3600, + "id": "{key:thor-join-base}", + "keyType": "auth", + "userId": "{user:thor}" + } + }, { + "kind": "api", + "key": "thor-join-mid", + "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 thor-join-mid", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 17 + }, { + "kind": "api", + "key": "thor-join-top", + "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 thor-join-top", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 2016 + }, { + "kind": "api", + "key": "thor-re", + "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 thor-re", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:13Z", + "description": "tscap-saasprobe thor-re", + "expires": "2026-10-17T19:18:13Z", + "expirySeconds": 3600, + "id": "{key:thor-re}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 4018 + }, { + "kind": "api", + "key": "thor-re2", + "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 thor-re2", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }, + "offset_ms": 6018 + }] + }, { + "name": "thor-member", + "at": "2026-10-17T18:18:15.224377143Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/users", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"users": [{ + "created": "2025-01-06T15:34:57.211063713Z", + "displayName": "odin@example.com", + "id": "{user:odin}", + "lastSeen": "2026-10-17T18:09:39Z", + "loginName": "odin@example.com", + "profilePicUrl": "", + "role": "owner", + "status": "active", + "tailnetId": "1260082990019555", + "type": "member" + }, { + "created": "2026-02-20T13:16:07.187446882Z", + "displayName": "thor@example.org", + "id": "{user:thor}", + "lastSeen": "2026-10-17T16:47:43Z", + "loginName": "thor@example.org", + "profilePicUrl": "", + "role": "admin", + "status": "active", + "tailnetId": "1260082990019555", + "type": "member" + }, { + "created": "2026-02-20T13:19:42.5861759Z", + "displayName": "freya@example.com", + "id": "{user:freya}", + "lastSeen": "2026-10-17T16:05:59Z", + "loginName": "freya@example.com", + "profilePicUrl": "", + "role": "admin", + "status": "active", + "tailnetId": "1260082990019555", + "type": "member" + }]} + }, { + "kind": "api", + "principal": "admin", + "method": "POST", + "path": "/users/{user:thor}/role", + "header": {"Content-Type": "application/json"}, + "body": {"role": "member"}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 18 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/users/{user:thor}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "created": "2026-02-20T13:16:07.187446882Z", + "displayName": "thor@example.org", + "id": "{user:thor}", + "lastSeen": "2026-10-17T16:47:43Z", + "loginName": "thor@example.org", + "profilePicUrl": "", + "role": "member", + "status": "active", + "tailnetId": "1260082990019555", + "type": "member" + }, + "offset_ms": 2017 + }, {"kind": "wait", "args": ["3s"], "offset_ms": 2032}] + }, { + "name": "thor-mint-base", + "at": "2026-10-17T18:18:20.260268847Z", + "note": "setup-failed: thor-base as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-base", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base"] + }}}, "description": "tscap-saasprobe thor-base", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-mid", + "at": "2026-10-17T18:18:20.279112647Z", + "note": "setup-failed: thor-mid as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-mid", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mid"] + }}}, "description": "tscap-saasprobe thor-mid", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-top", + "at": "2026-10-17T18:18:22.279725146Z", + "note": "setup-failed: thor-top as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-top", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-top"] + }}}, "description": "tscap-saasprobe thor-top", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-dtop", + "at": "2026-10-17T18:18:24.278549356Z", + "note": "setup-failed: thor-dtop as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-dtop", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-dtop"] + }}}, "description": "tscap-saasprobe thor-dtop", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-cyc2", + "at": "2026-10-17T18:18:26.298516796Z", + "note": "setup-failed: thor-cyc2 as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-cyc2", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-cyc2"] + }}}, "description": "tscap-saasprobe thor-cyc2", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-gmid", + "at": "2026-10-17T18:18:28.282463026Z", + "note": "setup-failed: thor-gmid as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-gmid", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-gmid"] + }}}, "description": "tscap-saasprobe thor-gmid", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-mixed", + "at": "2026-10-17T18:18:30.284392474Z", + "note": "setup-failed: thor-mixed as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-mixed", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mixed"] + }}}, "description": "tscap-saasprobe thor-mixed", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "thor-mint-other", + "at": "2026-10-17T18:18:32.286571215Z", + "note": "setup-failed: thor-other as user:thor: status 404, no tag verdict", + "result": "setup-failed", + "actions": [{ + "kind": "api", + "key": "thor-other", + "principal": "user:thor", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-other"] + }}}, "description": "tscap-saasprobe thor-other", "expirySeconds": 3600}, + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"} + }] + }, { + "name": "u-base-join", + "at": "2026-10-17T18:18:34.288131963Z", + "result": "observed", + "actions": [{ + "kind": "join", + "node": "u-base", + "key": "thor-join-base", + "request_tags": ["tag:own-base"], + "hostname": "u-base", + "offset_ms": 162 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:18:38Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.76.5.81", "fd7a:115c:a1e0::a928:552"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:54994", + "192.0.2.1:54994", + "198.51.100.2:54994", + "198.51.100.3:54994" + ], "latency": { + "Amsterdam": {"latencyMs": 12.430032, "preferred": true}, + "Ashburn": {"latencyMs": 94.309945}, + "Bengaluru": {"latencyMs": 146.65794100000002}, + "Chicago": {"latencyMs": 113.251554}, + "Dallas": {"latencyMs": 125.959242}, + "Denver": {"latencyMs": 135.040839}, + "Dubai": {"latencyMs": 114.69103199999999}, + "Frankfurt": {"latencyMs": 17.661521999999998}, + "Helsinki": {"latencyMs": 36.305645}, + "Hong Kong": {"latencyMs": 196.237899}, + "Honolulu": {"latencyMs": 204.395261}, + "Johannesburg": {"latencyMs": 183.95458}, + "London": {"latencyMs": 15.368913}, + "Los Angeles": {"latencyMs": 143.817069}, + "Madrid": {"latencyMs": 34.123939}, + "Miami": {"latencyMs": 117.201256}, + "Nairobi": {"latencyMs": 174.293308}, + "New York City": {"latencyMs": 87.318255}, + "Nuremberg": {"latencyMs": 21.992101}, + "Paris": {"latencyMs": 20.235336999999998}, + "San Francisco": {"latencyMs": 154.32659900000002}, + "Seattle": {"latencyMs": 146.358408}, + "Singapore": {"latencyMs": 167.19309299999998}, + "Tokyo": {"latencyMs": 247.926483}, + "Toronto": {"latencyMs": 120.934887}, + "Warsaw": {"latencyMs": 28.093591} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:35Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:35Z", + "hostname": "u-base", + "id": "{device:u-base}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:18:38Z", + "machineKey": "{machine:u-base}", + "name": "u-base.tail78f774.ts.net", + "nodeId": "{device:u-base}", + "nodeKey": "{nodekey:2}", + "oauthClientId": "{key:thor-join-base}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:own-base"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:bb7ec8ad5b14c588e77c457d2ba0d7a8ac55c516a2c483edbab27c230460a2e5", + "updateAvailable": true, + "user": "thor@example.org" + }]}, + "offset_ms": 3766 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:thor-join-base}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"}, + "offset_ms": 3782 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:13Z", + "description": "tscap-saasprobe thor-re", + "expires": "2026-10-17T19:18:13Z", + "expirySeconds": 3600, + "id": "{key:thor-re}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3800 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [{ + "ID": 2007848593188117, + "StableID": "naKHd7nMgG11CNTRL", + "Name": "u-base.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:6ccdc93c167e47de932f797a4d1400b36e38230e4bd17aed525c6ae8a98c0551", + "DiscoKey": "discokey:ebd9751fd0c8ed11625e76c32325fdda90d78d4360053bd007c555e96bd2f56f", + "Addresses": ["100.76.5.81/32", "fd7a:115c:a1e0::a928:552/128"], + "AllowedIPs": ["100.76.5.81/32", "fd7a:115c:a1e0::a928:552/128"], + "Endpoints": [ + "192.0.2.1:54994", + "198.51.100.1:54994", + "198.51.100.2:54994", + "198.51.100.3:54994" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-base", "Services": [ + {"Proto": "peerapi4", "Port": 47249}, + {"Proto": "peerapi6", "Port": 47249} + ]}, + "Created": "2026-10-17T18:18:34.617976457Z", + "Cap": 142, + "Tags": ["tag:own-base"], + "Online": true, + "ComputedName": "u-base", + "ComputedNameWithHost": "u-base" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-base": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 2007848593188117, + "StableID": "naKHd7nMgG11CNTRL", + "Name": "u-base.tail78f774.ts.net.", + "User": 2007848593188117, + "Key": "nodekey:6ccdc93c167e47de932f797a4d1400b36e38230e4bd17aed525c6ae8a98c0551", + "DiscoKey": "discokey:ebd9751fd0c8ed11625e76c32325fdda90d78d4360053bd007c555e96bd2f56f", + "Addresses": ["100.76.5.81/32", "fd7a:115c:a1e0::a928:552/128"], + "AllowedIPs": ["100.76.5.81/32", "fd7a:115c:a1e0::a928:552/128"], + "Hostinfo": { + "Hostname": "u-base", + "RequestTags": ["tag:own-base"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:18:34.617976457Z", + "Tags": ["tag:own-base"], + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": 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": "u-base", + "ComputedNameWithHost": "u-base" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "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:6ccdc93c167e47de932f797a4d1400b36e38230e4bd17aed525c6ae8a98c0551", + "MachineKey": "mkey:aa23e1ce225a968776414ea88787c04a4a7a365d149d265b92466f52f8dc7b0b", + "Peers": [{ + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "2007848593188117": { + "ID": 2007848593188117, + "LoginName": "u-base.tail78f774.ts.net", + "DisplayName": "u-base" + }} + }, "backend_state": "Running"}}, + "register": {"u-base": [{ + "node_key": "{nodekey:2}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "u-mid-join", + "at": "2026-10-17T18:18:42.123061934Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-base"}, { + "kind": "join", + "node": "u-mid", + "key": "thor-join-mid", + "request_tags": ["tag:own-mid"], + "hostname": "u-mid", + "offset_ms": 186 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:18:46Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3406 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:thor-join-mid}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"}, + "offset_ms": 3421 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:13Z", + "description": "tscap-saasprobe thor-re", + "expires": "2026-10-17T19:18:13Z", + "expirySeconds": 3600, + "id": "{key:thor-re}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3438 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-mid": { + "backend_state": "NeedsLogin", + "err_message": "requested tags [tag:own-mid] are invalid or not permitted" + }}, + "register": {"u-mid": [{ + "node_key": "{nodekey:3}", + "node_key_expired": false, + "machine_authorized": false + }, {"err": "requested tags [tag:own-mid] are invalid or not permitted"}, { + "node_key": "{nodekey:4}", + "node_key_expired": false, + "machine_authorized": false + }, { + "err": "requested tags [tag:own-mid] are invalid or not permitted", + "offset_ms": 4876 + }, {"node_key": "{nodekey:5}", "offset_ms": 4876}]} + }, { + "name": "u-top-join", + "at": "2026-10-17T18:18:49.588297288Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-mid"}, { + "kind": "join", + "node": "u-top", + "key": "thor-join-top", + "request_tags": ["tag:own-top"], + "hostname": "u-top", + "offset_ms": 168 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:18:53Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3390 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:thor-join-top}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"}, + "offset_ms": 3405 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:13Z", + "description": "tscap-saasprobe thor-re", + "expires": "2026-10-17T19:18:13Z", + "expirySeconds": 3600, + "id": "{key:thor-re}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3425 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-top": { + "backend_state": "NeedsLogin", + "err_message": "requested tags [tag:own-top] are invalid or not permitted" + }}, + "register": {"u-top": [{ + "node_key": "{nodekey:6}", + "node_key_expired": false, + "machine_authorized": false + }, {"err": "requested tags [tag:own-top] are invalid or not permitted"}, { + "node_key": "{nodekey:7}", + "node_key_expired": false, + "machine_authorized": false + }, { + "err": "requested tags [tag:own-top] are invalid or not permitted", + "offset_ms": 4411 + }, {"node_key": "{nodekey:8}", "offset_ms": 4411}]} + }, { + "name": "u-re-join", + "at": "2026-10-17T18:18:57.041713266Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-top"}, { + "kind": "join", + "node": "u-re", + "key": "thor-re", + "hostname": "u-re", + "offset_ms": 165 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:19:01Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59140", + "192.0.2.1:59140", + "198.51.100.2:59140", + "198.51.100.3:59140" + ], "latency": { + "Amsterdam": {"latencyMs": 11.918747, "preferred": true}, + "Ashburn": {"latencyMs": 99.771856}, + "Bengaluru": {"latencyMs": 214.975216}, + "Chicago": {"latencyMs": 113.95551499999999}, + "Dallas": {"latencyMs": 127.989055}, + "Denver": {"latencyMs": 139.22472199999999}, + "Dubai": {"latencyMs": 117.342239}, + "Frankfurt": {"latencyMs": 17.017713}, + "Helsinki": {"latencyMs": 37.604365}, + "Hong Kong": {"latencyMs": 195.886163}, + "Honolulu": {"latencyMs": 206.893034}, + "Johannesburg": {"latencyMs": 181.36419700000002}, + "London": {"latencyMs": 16.533994}, + "Los Angeles": {"latencyMs": 143.150306}, + "Madrid": {"latencyMs": 34.354321999999996}, + "Miami": {"latencyMs": 120.667344}, + "Nairobi": {"latencyMs": 162.03515199999998}, + "New York City": {"latencyMs": 90.297077}, + "Nuremberg": {"latencyMs": 20.689806}, + "Paris": {"latencyMs": 21.316039}, + "San Francisco": {"latencyMs": 189.428016}, + "Seattle": {"latencyMs": 145.977924}, + "Singapore": {"latencyMs": 163.872763}, + "Toronto": {"latencyMs": 120.298481}, + "Warsaw": {"latencyMs": 30.988793} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:57Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:57Z", + "hostname": "u-re", + "id": "{device:u-re}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:19:01Z", + "machineKey": "{machine:u-re}", + "name": "u-re.tail78f774.ts.net", + "nodeId": "{device:u-re}", + "nodeKey": "{nodekey:9}", + "oauthClientId": "{key:thor-re}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:778f8d5c48454ad0352e935ecc49d4ea007be283cdbc1e617e9e5c5bd8bbdfb0", + "updateAvailable": true, + "user": "thor@example.org" + }]}, + "offset_ms": 3769 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:thor-re}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"}, + "offset_ms": 3788 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3803 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [{ + "ID": 6350183221217456, + "StableID": "nXrX5dY1br11CNTRL", + "Name": "u-re.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "KeyExpiry": "2027-04-15T18:18:57Z", + "DiscoKey": "discokey:864d40958517d1a6c2732c4390e6fa2e41b02b445acecdbe23135e25e65f9a1d", + "Addresses": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "AllowedIPs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "Endpoints": [ + "192.0.2.1:59140", + "198.51.100.1:59140", + "198.51.100.2:59140", + "198.51.100.3:59140" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-re", "Services": [ + {"Proto": "peerapi4", "Port": 37235}, + {"Proto": "peerapi6", "Port": 37235} + ]}, + "Created": "2026-10-17T18:18:57.354877062Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-re", + "ComputedNameWithHost": "u-re" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-re": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 6350183221217456, + "StableID": "nXrX5dY1br11CNTRL", + "Name": "u-re.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "KeyExpiry": "2027-04-15T18:18:57Z", + "DiscoKey": "discokey:864d40958517d1a6c2732c4390e6fa2e41b02b445acecdbe23135e25e65f9a1d", + "Addresses": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "AllowedIPs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "Hostinfo": { + "Hostname": "u-re", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:18:57.354877062Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": 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": "u-re", + "ComputedNameWithHost": "u-re" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "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:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "MachineKey": "mkey:801188f24c7db21e932ae8fed9028bfc3898f6294ee03b06ff4e6279e65d872e", + "Peers": [{ + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "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" + }, "4538565228176803": { + "ID": 4538565228176803, + "LoginName": "thor@example.org", + "DisplayName": "thor" + }} + }, "backend_state": "Running"}}, + "register": {"u-re": [{ + "node_key": "{nodekey:9}", + "node_key_expired": false, + "machine_authorized": true + }]} + }, { + "name": "u-re-relogin", + "at": "2026-10-17T18:19:04.8807212Z", + "result": "observed", + "actions": [{ + "kind": "relogin", + "node": "u-re", + "key": "thor-re2", + "force": true, + "request_tags": ["tag:own-mid"], + "hostname": "u-re", + "offset_ms": 17 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:19:08Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:59140", + "192.0.2.1:59140", + "198.51.100.2:59140", + "198.51.100.3:59140" + ], "latency": { + "Amsterdam": {"latencyMs": 11.918747, "preferred": true}, + "Ashburn": {"latencyMs": 99.771856}, + "Bengaluru": {"latencyMs": 214.975216}, + "Chicago": {"latencyMs": 113.95551499999999}, + "Dallas": {"latencyMs": 127.989055}, + "Denver": {"latencyMs": 139.22472199999999}, + "Dubai": {"latencyMs": 117.342239}, + "Frankfurt": {"latencyMs": 17.017713}, + "Helsinki": {"latencyMs": 37.604365}, + "Hong Kong": {"latencyMs": 195.886163}, + "Honolulu": {"latencyMs": 206.893034}, + "Johannesburg": {"latencyMs": 181.36419700000002}, + "London": {"latencyMs": 16.533994}, + "Los Angeles": {"latencyMs": 143.150306}, + "Madrid": {"latencyMs": 34.354321999999996}, + "Miami": {"latencyMs": 120.667344}, + "Nairobi": {"latencyMs": 162.03515199999998}, + "New York City": {"latencyMs": 90.297077}, + "Nuremberg": {"latencyMs": 20.689806}, + "Paris": {"latencyMs": 21.316039}, + "San Francisco": {"latencyMs": 189.428016}, + "Seattle": {"latencyMs": 145.977924}, + "Singapore": {"latencyMs": 163.872763}, + "Toronto": {"latencyMs": 120.298481}, + "Warsaw": {"latencyMs": 30.988793} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:57Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:57Z", + "hostname": "u-re", + "id": "{device:u-re}", + "isExternal": false, + "keyExpiryDisabled": false, + "lastSeen": "2026-10-17T18:19:08Z", + "machineKey": "{machine:u-re}", + "name": "u-re.tail78f774.ts.net", + "nodeId": "{device:u-re}", + "nodeKey": "{nodekey:9}", + "oauthClientId": "{key:thor-re}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tailnetLockError": "", + "tailnetLockKey": "nlpub:778f8d5c48454ad0352e935ecc49d4ea007be283cdbc1e617e9e5c5bd8bbdfb0", + "updateAvailable": true, + "user": "thor@example.org" + }]}, + "offset_ms": 3571 + }, { + "kind": "api", + "principal": "user:thor", + "method": "GET", + "path": "/tailnet/-/keys/{key:thor-re2}", + "status": 404, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "not found"}, + "offset_ms": 3586 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }]}, + "offset_ms": 3604 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [{ + "ID": 6350183221217456, + "StableID": "nXrX5dY1br11CNTRL", + "Name": "u-re.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "KeyExpiry": "2027-04-15T18:18:57Z", + "DiscoKey": "discokey:864d40958517d1a6c2732c4390e6fa2e41b02b445acecdbe23135e25e65f9a1d", + "Addresses": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "AllowedIPs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "Endpoints": [ + "192.0.2.1:59140", + "198.51.100.1:59140", + "198.51.100.2:59140", + "198.51.100.3:59140" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "u-re", "Services": [ + {"Proto": "peerapi4", "Port": 37235}, + {"Proto": "peerapi6", "Port": 37235} + ]}, + "Created": "2026-10-17T18:18:57.354877062Z", + "Cap": 142, + "Online": true, + "ComputedName": "u-re", + "ComputedNameWithHost": "u-re" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "u-re": { + "packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "netmap": { + "Cached": true, + "SelfNode": { + "ID": 6350183221217456, + "StableID": "nXrX5dY1br11CNTRL", + "Name": "u-re.tail78f774.ts.net.", + "User": 4538565228176803, + "Key": "nodekey:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "KeyExpiry": "2027-04-15T18:18:57Z", + "DiscoKey": "discokey:864d40958517d1a6c2732c4390e6fa2e41b02b445acecdbe23135e25e65f9a1d", + "Addresses": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "AllowedIPs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "HomeDERP": 14, + "Hostinfo": { + "Hostname": "u-re", + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:18:57.354877062Z", + "MachineAuthorized": true, + "CapMap": { + "default-auto-update": [false], + "https://tailscale.com/cap/file-sharing": [], + "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": ["odin@example.com"] + }, + "ComputedName": "u-re", + "ComputedNameWithHost": "u-re" + }, + "AllCaps": [ + "default-auto-update", + "https://tailscale.com/cap/file-sharing", + "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:158fde570aac926b1950761f4c31748e85ac3d45dcbc6f5681d8eb15ef8ff363", + "MachineKey": "mkey:801188f24c7db21e932ae8fed9028bfc3898f6294ee03b06ff4e6279e65d872e", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }, { + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.79.243.99/32", "fd7a:115c:a1e0::ef28:f364/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }, { + "SrcIPs": ["100.79.243.99", "fd7a:115c:a1e0::ef28:f364"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], + "SSHPolicy": {"rules": []}, + "CollectServices": false, + "DERPMap": null, + "DisplayMessages": null, + "TKAEnabled": false, + "TKAHead": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Domain": "odin@example.com", + "DomainAuditLogID": "", + "UserProfiles": null + }, + "backend_state": "Running", + "err_message": "requested tags [tag:own-mid] are invalid or not permitted" + }}, + "register": {"u-re": [ + { + "err": "fetch control key: Get \"https://controlplane.tailscale.com/key?v=142\": context canceled" + }, + { + "node_key": "{nodekey:10}", + "old_node_key": "{nodekey:9}", + "node_key_expired": false, + "machine_authorized": false + }, + { + "err": "requested tags [tag:own-mid] are invalid or not permitted", + "offset_ms": 119 + }, + { + "node_key": "{nodekey:11}", + "old_node_key": "{nodekey:9}", + "node_key_expired": false, + "machine_authorized": false, + "offset_ms": 119 + }, + { + "err": "requested tags [tag:own-mid] are invalid or not permitted", + "offset_ms": 5119 + }, + {"node_key": "{nodekey:12}", "old_node_key": "{nodekey:9}", "offset_ms": 5119} + ]} + }, { + "name": "t-mid-join", + "at": "2026-10-17T18:19:12.517831531Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "u-re"}, { + "kind": "api", + "key": "own-base", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, "description": "tscap-saasprobe own-base", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:15Z", + "description": "tscap-saasprobe own-base", + "expires": "2026-10-17T19:19:15Z", + "expirySeconds": 3600, + "id": "{key:own-base}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 58 + }, { + "kind": "join", + "node": "t-mid", + "key": "own-base", + "request_tags": ["tag:own-mid"], + "hostname": "t-mid", + "offset_ms": 2172 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:19:18Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }, { + "addresses": ["100.110.29.125", "fd7a:115c:a1e0::b528:1d7e"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:35570", + "192.0.2.1:35570", + "198.51.100.2:35570", + "198.51.100.3:35570" + ], "latency": { + "Amsterdam": {"latencyMs": 11.536515000000001, "preferred": true}, + "Ashburn": {"latencyMs": 95.783154}, + "Bengaluru": {"latencyMs": 210.362844}, + "Chicago": {"latencyMs": 109.973421}, + "Dallas": {"latencyMs": 125.95114099999999}, + "Denver": {"latencyMs": 137.301105}, + "Dubai": {"latencyMs": 115.825789}, + "Frankfurt": {"latencyMs": 17.622028}, + "Helsinki": {"latencyMs": 37.412288000000004}, + "Hong Kong": {"latencyMs": 195.061782}, + "Honolulu": {"latencyMs": 219.561221}, + "Johannesburg": {"latencyMs": 194.605753}, + "London": {"latencyMs": 15.590345000000001}, + "Los Angeles": {"latencyMs": 144.948052}, + "Madrid": {"latencyMs": 34.122885}, + "Miami": {"latencyMs": 118.31274499999999}, + "Nairobi": {"latencyMs": 162.038522}, + "New York City": {"latencyMs": 88.26604}, + "Nuremberg": {"latencyMs": 21.555795}, + "Paris": {"latencyMs": 17.89599}, + "San Francisco": {"latencyMs": 157.332008}, + "Seattle": {"latencyMs": 149.736467}, + "Singapore": {"latencyMs": 168.503966}, + "Tokyo": {"latencyMs": 241.219461}, + "Toronto": {"latencyMs": 119.656132}, + "Warsaw": {"latencyMs": 28.962163} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:19:15Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:19:15Z", + "hostname": "t-mid", + "id": "{device:t-mid}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:19:18Z", + "machineKey": "{machine:t-mid}", + "name": "t-mid.tail78f774.ts.net", + "nodeId": "{device:t-mid}", + "nodeKey": "{nodekey:13}", + "oauthClientId": "{key:own-base}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:own-mid"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:74690f6d16f3c3cfeea5689c65a5d3bcfa048ed38c10641bdaa200758d03d9ee", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 5796 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:own-base}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:15Z", + "description": "tscap-saasprobe own-base", + "expires": "2026-10-17T19:19:15Z", + "expirySeconds": 3600, + "id": "{key:own-base}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 5814 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:15Z", + "description": "tscap-saasprobe own-base", + "expires": "2026-10-17T19:19:15Z", + "expirySeconds": 3600, + "id": "{key:own-base}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 5830 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [{ + "ID": 8470221155761475, + "StableID": "nxKFd7MB9921CNTRL", + "Name": "t-mid.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:2d8b07b28870e0691267d1f5c2b1282b1d71d66c8ad73162e870173eb52e1d7d", + "DiscoKey": "discokey:a48c9dff43fe873b2fb302d81f1cd35690314072804de9c52fd106972bbaa225", + "Addresses": ["100.110.29.125/32", "fd7a:115c:a1e0::b528:1d7e/128"], + "AllowedIPs": ["100.110.29.125/32", "fd7a:115c:a1e0::b528:1d7e/128"], + "Endpoints": [ + "192.0.2.1:35570", + "198.51.100.1:35570", + "198.51.100.2:35570", + "198.51.100.3:35570" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "t-mid", "Services": [ + {"Proto": "peerapi4", "Port": 56997}, + {"Proto": "peerapi6", "Port": 56997} + ]}, + "Created": "2026-10-17T18:19:14.831936678Z", + "Cap": 142, + "Tags": ["tag:own-mid"], + "Online": true, + "ComputedName": "t-mid", + "ComputedNameWithHost": "t-mid" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-mid": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8470221155761475, + "StableID": "nxKFd7MB9921CNTRL", + "Name": "t-mid.tail78f774.ts.net.", + "User": 8470221155761475, + "Key": "nodekey:2d8b07b28870e0691267d1f5c2b1282b1d71d66c8ad73162e870173eb52e1d7d", + "DiscoKey": "discokey:a48c9dff43fe873b2fb302d81f1cd35690314072804de9c52fd106972bbaa225", + "Addresses": ["100.110.29.125/32", "fd7a:115c:a1e0::b528:1d7e/128"], + "AllowedIPs": ["100.110.29.125/32", "fd7a:115c:a1e0::b528:1d7e/128"], + "Hostinfo": { + "Hostname": "t-mid", + "RequestTags": ["tag:own-mid"], + "Services": [{"Proto": "peerapi-dns-proxy", "Port": 1}] + }, + "Created": "2026-10-17T18:19:14.831936678Z", + "Tags": ["tag:own-mid"], + "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": "t-mid", + "ComputedNameWithHost": "t-mid" + }, + "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:2d8b07b28870e0691267d1f5c2b1282b1d71d66c8ad73162e870173eb52e1d7d", + "MachineKey": "mkey:051c2278bb2202dbbfc2826c9bef697448602214029c0c14f685313923e9a814", + "Peers": [{ + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 1260082990019555, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "HomeDERP": 14, + "Hostinfo": {"OS": "linux", "Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Cap": 142, + "Tags": ["tag:observer"], + "Online": true, + "ComputedName": "obs", + "ComputedNameWithHost": "obs" + }], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8470221155761475": { + "ID": 8470221155761475, + "LoginName": "t-mid.tail78f774.ts.net", + "DisplayName": "t-mid" + }} + }, "backend_state": "Running"}}, + "register": {"t-mid": [{ + "node_key": "{nodekey:13}", + "node_key_expired": false, + "machine_authorized": true, + "offset_ms": 1482 + }]} + }, { + "name": "t-top-join", + "at": "2026-10-17T18:19:22.38479969Z", + "result": "observed", + "actions": [{"kind": "retire", "node": "t-mid"}, { + "kind": "join", + "node": "t-top", + "key": "own-base", + "request_tags": ["tag:own-top"], + "hostname": "t-top", + "offset_ms": 183 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/devices?fields=all", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"devices": [{ + "addresses": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "advertisedRoutes": [], + "authorized": true, + "blocksIncomingConnections": false, + "clientConnectivity": {"clientSupports": { + "hairPinning": null, + "ipv6": false, + "pcp": false, + "pmp": false, + "udp": true, + "upnp": false + }, "endpoints": [ + "198.51.100.1:37048", + "192.0.2.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], "latency": { + "Amsterdam": {"latencyMs": 12.642714, "preferred": true}, + "Ashburn": {"latencyMs": 102.827607}, + "Bengaluru": {"latencyMs": 141.939954}, + "Chicago": {"latencyMs": 110.921971}, + "Dallas": {"latencyMs": 125.70146400000002}, + "Denver": {"latencyMs": 140.52889}, + "Dubai": {"latencyMs": 116.44687900000001}, + "Frankfurt": {"latencyMs": 17.322198}, + "Helsinki": {"latencyMs": 36.724766}, + "Hong Kong": {"latencyMs": 196.122202}, + "Honolulu": {"latencyMs": 194.501724}, + "Johannesburg": {"latencyMs": 192.450898}, + "London": {"latencyMs": 15.617417}, + "Los Angeles": {"latencyMs": 144.176209}, + "Madrid": {"latencyMs": 34.392162}, + "Miami": {"latencyMs": 117.767885}, + "Nairobi": {"latencyMs": 174.24292499999999}, + "New York City": {"latencyMs": 90.111721}, + "Nuremberg": {"latencyMs": 23.802668999999998}, + "Paris": {"latencyMs": 19.828492999999998}, + "San Francisco": {"latencyMs": 156.97367400000002}, + "Seattle": {"latencyMs": 145.926627}, + "Singapore": {"latencyMs": 178.30173399999998}, + "Tokyo": {"latencyMs": 238.33378399999998}, + "Toronto": {"latencyMs": 119.662366}, + "Warsaw": {"latencyMs": 28.759027} + }, "mappingVariesByDestIP": false}, + "clientVersion": "1.102.5-ERR-BuildInfo", + "connectedToControl": true, + "created": "2026-10-17T18:18:03Z", + "distro": {"codeName": "yarara", "name": "nixos", "version": "26.05"}, + "enabledRoutes": [], + "expires": "2027-04-15T18:18:03Z", + "hostname": "obs", + "id": "{device:obs}", + "isExternal": false, + "keyExpiryDisabled": true, + "lastSeen": "2026-10-17T18:19:26Z", + "machineKey": "{machine:obs}", + "name": "obs.tail78f774.ts.net", + "nodeId": "{device:obs}", + "nodeKey": "{nodekey:1}", + "oauthClientId": "{key:Kobs}", + "os": "linux", + "postureStatus": {}, + "sshEnabled": false, + "tags": ["tag:observer"], + "tailnetLockError": "", + "tailnetLockKey": "nlpub:770be75d56c4c4abc35cffba2d6b8a4dd648ee04133fc6b691dd9caf372e2284", + "updateAvailable": true, + "user": "odin@example.com" + }]}, + "offset_ms": 3397 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys/{key:own-base}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:15Z", + "description": "tscap-saasprobe own-base", + "expires": "2026-10-17T19:19:15Z", + "expirySeconds": 3600, + "id": "{key:own-base}", + "keyType": "auth", + "userId": "{user:odin}" + }, + "offset_ms": 3414 + }, { + "kind": "api", + "principal": "admin", + "method": "GET", + "path": "/tailnet/-/keys?all=true", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": {"keys": [{ + "created": "2026-09-10T13:01:51Z", + "description": "tscap", + "expires": "2026-12-09T13:01:51Z", + "expirySeconds": 7776000, + "id": "{otherkey:1}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:thor}" + }, { + "created": "2026-09-10T13:02:34Z", + "description": "tscap", + "expires": "2026-12-09T13:02:34Z", + "expirySeconds": 7776000, + "id": "{otherkey:2}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:freya}" + }, { + "created": "2026-09-10T13:05:03Z", + "description": "tscap", + "expires": "2026-12-09T13:05:03Z", + "expirySeconds": 7776000, + "id": "{otherkey:3}", + "keyType": "api", + "scopes": ["all", "all:read"], + "userId": "{user:odin}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:09Z", + "description": "tscap-saasprobe thor-join-mid", + "expires": "2026-10-17T19:18:09Z", + "expirySeconds": 3600, + "id": "{key:thor-join-mid}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:11Z", + "description": "tscap-saasprobe thor-join-top", + "expires": "2026-10-17T19:18:11Z", + "expirySeconds": 3600, + "id": "{key:thor-join-top}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": { + "devices": {"create": {"ephemeral": false, "preauthorized": true, "reusable": false}} + }, + "created": "2026-10-17T18:18:15Z", + "description": "tscap-saasprobe thor-re2", + "expires": "2026-10-17T19:18:15Z", + "expirySeconds": 3600, + "id": "{key:thor-re2}", + "keyType": "auth", + "userId": "{user:thor}" + }, { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": true, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:15Z", + "description": "tscap-saasprobe own-base", + "expires": "2026-10-17T19:19:15Z", + "expirySeconds": 3600, + "id": "{key:own-base}", + "keyType": "auth", + "userId": "{user:odin}" + }]}, + "offset_ms": 3429 + }], + "captures": {"obs": {"packet_filter_rules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "Ports": {"First": 0, "Last": 65535}}] + }], "packet_filter_matches": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], "netmap": { + "Cached": false, + "SelfNode": { + "ID": 8768095475240276, + "StableID": "novSD116UB21CNTRL", + "Name": "obs.tail78f774.ts.net.", + "User": 8768095475240276, + "Key": "nodekey:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "DiscoKey": "discokey:2ae3c744958b277c222664c09ee23b26e775146fb532449f6417cd822ac28311", + "Addresses": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "AllowedIPs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "Endpoints": [ + "192.0.2.1:37048", + "198.51.100.1:37048", + "198.51.100.2:37048", + "198.51.100.3:37048" + ], + "Hostinfo": {"Hostname": "obs", "Services": [ + {"Proto": "peerapi4", "Port": 47831}, + {"Proto": "peerapi6", "Port": 47831}, + {"Proto": "peerapi-dns-proxy", "Port": 1} + ]}, + "Created": "2026-10-17T18:18:02.79575364Z", + "Tags": ["tag:observer"], + "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": "obs", + "ComputedNameWithHost": "obs" + }, + "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:0fcf1bdd5cb871520c4ecff53144fcbae2f22150509a66a8311d5f99e9fbd143", + "MachineKey": "mkey:63facb8b8f3a8273056613492dae1d51dd85a201c93e11f0c2cb89f6fedd856d", + "Peers": [], + "DNS": {"ExitNodeFilteredSet": [".ts.net", ".tailscale.net"]}, + "PacketFilter": [{ + "IPProto": [6, 17, 1, 58], + "Srcs": ["100.123.209.67/32", "fd7a:115c:a1e0::e928:d144/128"], + "SrcCaps": null, + "Dsts": [ + {"Net": "0.0.0.0/0", "Ports": {"First": 0, "Last": 65535}}, + {"Net": "::/0", "Ports": {"First": 0, "Last": 65535}} + ], + "Caps": [] + }], + "PacketFilterRules": [{ + "SrcIPs": ["100.123.209.67", "fd7a:115c:a1e0::e928:d144"], + "DstPorts": [{"IP": "*", "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" + }, "8768095475240276": { + "ID": 8768095475240276, + "LoginName": "obs.tail78f774.ts.net", + "DisplayName": "obs" + }} + }, "backend_state": "Running"}, "t-top": { + "backend_state": "NeedsLogin", + "err_message": "requested tags [tag:own-top] are invalid or not permitted" + }}, + "register": {"t-top": [{ + "node_key": "{nodekey:14}", + "node_key_expired": false, + "machine_authorized": false + }, {"err": "requested tags [tag:own-top] are invalid or not permitted"}, { + "node_key": "{nodekey:15}", + "node_key_expired": false, + "machine_authorized": false + }, { + "err": "requested tags [tag:own-top] are invalid or not permitted", + "offset_ms": 4615 + }, {"node_key": "{nodekey:16}", "offset_ms": 4615}]} + }, { + "name": "oauth-clients", + "at": "2026-10-17T18:19:29.842941183Z", + "result": "observed", + "actions": [ + {"kind": "retire", "node": "t-top"}, + { + "kind": "api", + "client": "C-base", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": { + "description": "tscap-saasprobe C-base", + "keyType": "client", + "scopes": ["auth_keys"], + "tags": ["tag:own-base"] + }, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "created": "2026-10-17T18:19:30Z", + "description": "tscap-saasprobe C-base", + "id": "{client:C-base}", + "keyType": "client", + "scopes": ["auth_keys"], + "tags": ["tag:own-base"], + "userId": "{user:odin}" + }, + "offset_ms": 22 + }, + { + "kind": "api", + "client": "C-two", + "principal": "admin", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": { + "description": "tscap-saasprobe C-two", + "keyType": "client", + "scopes": ["auth_keys"], + "tags": ["tag:own-base", "tag:own-other"] + }, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "created": "2026-10-17T18:19:32Z", + "description": "tscap-saasprobe C-two", + "id": "{client:C-two}", + "keyType": "client", + "scopes": ["auth_keys"], + "tags": ["tag:own-base", "tag:own-other"], + "userId": "{user:odin}" + }, + "offset_ms": 38 + }, + {"kind": "token", "client": "C-base", "status": 200, "response": { + "expires_in": 3600, + "scope": "auth_keys", + "tags": "tag:own-base", + "token_type": "Bearer" + }, "offset_ms": 2040}, + {"kind": "token", "client": "C-two", "status": 200, "response": { + "expires_in": 3600, + "scope": "auth_keys", + "tags": "tag:own-base tag:own-other", + "token_type": "Bearer" + }, "offset_ms": 4042} + ] + }, { + "name": "C-base-mint-base", + "at": "2026-10-17T18:19:35.887897094Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "cbase-base", + "principal": "token:C-base", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base"] + }}}, "description": "tscap-saasprobe cbase-base", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base"] + }}}, + "created": "2026-10-17T18:19:38Z", + "description": "tscap-saasprobe cbase-base", + "expires": "2026-10-17T19:19:38Z", + "expirySeconds": 3600, + "id": "{key:cbase-base}", + "keyType": "auth" + } + }, { + "kind": "api", + "principal": "token:C-base", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:cbase-base}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2000 + }] + }, { + "name": "C-base-mint-mid", + "at": "2026-10-17T18:19:39.89072553Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "cbase-mid", + "principal": "token:C-base", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mid"] + }}}, "description": "tscap-saasprobe cbase-mid", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mid"] + }}}, + "created": "2026-10-17T18:19:42Z", + "description": "tscap-saasprobe cbase-mid", + "expires": "2026-10-17T19:19:42Z", + "expirySeconds": 3600, + "id": "{key:cbase-mid}", + "keyType": "auth" + } + }, { + "kind": "api", + "principal": "token:C-base", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:cbase-mid}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2001 + }] + }, { + "name": "C-base-mint-top", + "at": "2026-10-17T18:19:43.893620741Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "cbase-top", + "principal": "token:C-base", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-top"] + }}}, "description": "tscap-saasprobe cbase-top", "expirySeconds": 3600}, + "status": 400, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "requested tags [tag:own-top] are invalid or not permitted"} + }] + }, { + "name": "C-base-mint-dtop", + "at": "2026-10-17T18:19:45.894990784Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "cbase-dtop", + "principal": "token:C-base", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-dtop"] + }}}, "description": "tscap-saasprobe cbase-dtop", "expirySeconds": 3600}, + "status": 400, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "requested tags [tag:own-dtop] are invalid or not permitted"} + }] + }, { + "name": "C-base-mint-mixed", + "at": "2026-10-17T18:19:47.896130559Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "cbase-mixed", + "principal": "token:C-base", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mixed"] + }}}, "description": "tscap-saasprobe cbase-mixed", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-mixed"] + }}}, + "created": "2026-10-17T18:19:50Z", + "description": "tscap-saasprobe cbase-mixed", + "expires": "2026-10-17T19:19:50Z", + "expirySeconds": 3600, + "id": "{key:cbase-mixed}", + "keyType": "auth" + } + }, { + "kind": "api", + "principal": "token:C-base", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:cbase-mixed}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2004 + }] + }, { + "name": "C-two-mint-subset", + "at": "2026-10-17T18:19:51.898990906Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "ctwo-subset", + "principal": "token:C-two", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base"] + }}}, "description": "tscap-saasprobe ctwo-subset", "expirySeconds": 3600}, + "status": 400, + "resp_header": {"Content-Type": "application/json"}, + "response": {"message": "requested tags [tag:own-base] are invalid or not permitted"} + }] + }, { + "name": "C-two-mint-exact", + "at": "2026-10-17T18:19:53.902058872Z", + "result": "observed", + "actions": [{ + "kind": "api", + "key": "ctwo-exact", + "principal": "token:C-two", + "method": "POST", + "path": "/tailnet/-/keys", + "header": {"Content-Type": "application/json"}, + "body": {"capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base", "tag:own-other"] + }}}, "description": "tscap-saasprobe ctwo-exact", "expirySeconds": 3600}, + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": { + "capabilities": {"devices": {"create": { + "ephemeral": false, + "preauthorized": true, + "reusable": false, + "tags": ["tag:own-base", "tag:own-other"] + }}}, + "created": "2026-10-17T18:19:56Z", + "description": "tscap-saasprobe ctwo-exact", + "expires": "2026-10-17T19:19:56Z", + "expirySeconds": 3600, + "id": "{key:ctwo-exact}", + "keyType": "auth" + } + }, { + "kind": "api", + "principal": "token:C-two", + "method": "DELETE", + "path": "/tailnet/-/keys/{key:ctwo-exact}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2001 + }] + }, { + "name": "oauth-clients-delete", + "at": "2026-10-17T18:19:57.903071251Z", + "result": "observed", + "actions": [{ + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/tailnet/-/keys/{client:C-base}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null + }, { + "kind": "api", + "principal": "admin", + "method": "DELETE", + "path": "/tailnet/-/keys/{client:C-two}", + "status": 200, + "resp_header": {"Content-Type": "application/json"}, + "response": null, + "offset_ms": 2006 + }] + }, { + "name": "teardown", + "at": "2026-10-17T18:20:01.908273704Z", + "result": "observed" + }] +} diff --git a/hscontrol/servertest/via_ha_compat_test.go b/hscontrol/servertest/via_ha_compat_test.go index 2edf80b28..d60448da2 100644 --- a/hscontrol/servertest/via_ha_compat_test.go +++ b/hscontrol/servertest/via_ha_compat_test.go @@ -19,6 +19,7 @@ import ( "net/netip" "path/filepath" "slices" + "strconv" "strings" "testing" "time" @@ -28,8 +29,10 @@ import ( "github.com/juanfont/headscale/hscontrol/types/testcapture" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "tailscale.com/control/controlclient" "tailscale.com/tailcfg" "tailscale.com/types/netmap" + "tailscale.com/types/persist" ) // viaHACompatTests lists golden captures that exercise via+HA interactions. @@ -466,24 +469,38 @@ func readStepCapture(t *testing.T, id string) *testcapture.Capture { } // stepReplay drives a step capture's actions against headscale: policy -// pushes, key mints, joins, relogins, route announcements, logouts and -// admin calls, the last through the v2 API with the bodies SaaS received. -// Nothing is seeded from the capture's end state. +// pushes, key mints and revokes, joins, relogins, profile switches, +// restarts, route announcements, logouts, retires and admin calls, the +// last through the v2 API with the bodies SaaS received. Nothing is seeded +// from the capture's end state. type stepReplay struct { c *testcapture.Capture srv *servertest.TestServer admin *types.User + users map[string]*types.User apiKey string http *http.Client keys map[string]string clients map[string]*servertest.TestClient hostinfo map[string]*tailcfg.Hostinfo + + // keyIDs, keyTags and keyUsers describe each minted key by label. + keyIDs map[string]uint64 + keyTags map[string][]string + keyUsers map[string]*types.User + + // profiles holds the login a node switched away from. + profiles map[string]persist.Persist + + // interactive, when set, picks the joins and logins replayed as a login + // approved by the key's user instead of with the key. + interactive func(step testcapture.Step, a testcapture.Action) bool } -func newStepReplay(t *testing.T, c *testcapture.Capture) *stepReplay { +func newStepReplay(t *testing.T, c *testcapture.Capture, opts ...servertest.ServerOption) *stepReplay { t.Helper() - srv := servertest.NewServer(t) + srv := servertest.NewServer(t, opts...) users := createCaptureUsers(t, srv) // SaaS keys and admin calls act as the tailnet's admin. @@ -494,22 +511,29 @@ func newStepReplay(t *testing.T, c *testcapture.Capture) *stepReplay { c: c, srv: srv, admin: admin, + users: users, apiKey: srv.CreateAPIKey(t, admin), http: &http.Client{Transport: &http.Transport{DialContext: srv.MemNet().Dial}}, keys: map[string]string{}, clients: map[string]*servertest.TestClient{}, hostinfo: map[string]*tailcfg.Hostinfo{}, + keyIDs: map[string]uint64{}, + keyTags: map[string][]string{}, + keyUsers: map[string]*types.User{}, + profiles: map[string]persist.Persist{}, } } -// apply runs the step's actions in order. Reads are skipped: they are what -// consumers compare. -func (r *stepReplay) apply(t *testing.T, step testcapture.Step) { +// apply runs the step's actions in order and returns the logins headscale +// refused, by node. Reads are skipped: they are what consumers compare. +func (r *stepReplay) apply(t *testing.T, step testcapture.Step) map[string]error { t.Helper() ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() + refused := map[string]error{} + for _, a := range step.Actions { switch a.Kind { case "policy": @@ -521,49 +545,112 @@ func (r *stepReplay) apply(t *testing.T, step testcapture.Step) { require.NoError(t, json.Unmarshal(a.Body, &policy)) } - changed, err := r.srv.State().SetPolicy(convertPolicyEmails(t, r.c.TestID, policy)) - require.NoError(t, err, "%s: policy", step.Name) - - if changed { - changes, err := r.srv.State().ReloadPolicy() - require.NoError(t, err) - r.srv.App.Change(changes...) - } + r.setPolicy(t, step.Name, policy) case "api": r.api(t, step.Name, a) case "join": - require.Contains(t, r.keys, a.Key, "%s: join with unknown key", step.Name) + hi := &tailcfg.Hostinfo{ + BackendLogID: "servertest-" + a.Node, + Hostname: a.Hostname, + RequestTags: requestTags(a, nil), + } + r.hostinfo[a.Node] = hi - r.hostinfo[a.Node] = &tailcfg.Hostinfo{BackendLogID: "servertest-" + a.Node, Hostname: a.Hostname} - r.clients[a.Node] = servertest.NewClient(t, r.srv, a.Node, - servertest.WithUser(r.admin), - servertest.WithAuthKey(r.keys[a.Key]), - servertest.WithHostname(a.Hostname), - ) + opts := []servertest.ClientOption{servertest.WithUser(r.admin), servertest.WithHostinfo(hi.Clone())} + if r.interactive != nil && r.interactive(step, a) { + opts = append(opts, servertest.WithInteractiveLogin(r.approver(ctx, t, a.Key))) + } else { + require.Contains(t, r.keys, a.Key, "%s: join with unknown key", step.Name) + opts = append(opts, servertest.WithAuthKey(r.keys[a.Key])) + } + + cl, err := servertest.TryNewClient(t, r.srv, a.Node, opts...) + r.clients[a.Node] = cl + + if err != nil { + refused[a.Node] = err + + continue + } if len(a.Routes) > 0 { r.announce(ctx, t, a.Node, a.Routes) } case "relogin": - require.Contains(t, r.keys, a.Key, "%s: relogin with unknown key", step.Name) - // The probe restates hostname and routes on every login. hi := r.hostinfo[a.Node].Clone() hi.Hostname = a.Hostname hi.RoutableIPs = prefixes(t, a.Routes) + hi.RequestTags = requestTags(a, hi.RequestTags) r.hostinfo[a.Node] = hi - require.NoError(t, r.clients[a.Node].Relogin(ctx, r.keys[a.Key], a.Force, hi.Clone()), - "%s: relogin", step.Name) + cl := r.clients[a.Node] + + var err error + if r.interactive != nil && r.interactive(step, a) { + err = cl.Login(ctx, cl.Persist(), "", controlclient.LoginInteractive, hi.Clone(), r.approver(ctx, t, a.Key)) + } else { + require.Contains(t, r.keys, a.Key, "%s: relogin with unknown key", step.Name) + err = cl.Relogin(ctx, r.keys[a.Key], a.Force, hi.Clone()) + } + + if err != nil { + refused[a.Node] = err + } + + case "switch_profile": + cl := r.clients[a.Node] + + switch strings.Join(a.Args, " ") { + case "new": + r.profiles[a.Node] = cl.Persist() + case "back": + err := cl.Login(ctx, r.profiles[a.Node], "", controlclient.LoginDefault, r.hostinfo[a.Node].Clone(), nil) + if err != nil { + refused[a.Node] = err + } + default: + t.Fatalf("%s: no replay for switch_profile %q", step.Name, a.Args) + } + + case "login": + // A login on a new profile: the machine key stays, the login + // starts empty. + hi := r.hostinfo[a.Node].Clone() + hi.Hostname = a.Hostname + + cl := r.clients[a.Node] + + var err error + if r.interactive != nil && r.interactive(step, a) { + err = cl.Login(ctx, persist.Persist{}, "", controlclient.LoginInteractive, hi, r.approver(ctx, t, a.Key)) + } else { + require.Contains(t, r.keys, a.Key, "%s: login with unknown key", step.Name) + err = cl.Login(ctx, persist.Persist{}, r.keys[a.Key], controlclient.LoginDefault, hi, nil) + } + + if err != nil { + refused[a.Node] = err + } + + case "restart": + require.NoError(t, r.clients[a.Node].Restart(ctx, r.hostinfo[a.Node].Clone()), "%s: restart", step.Name) case "advertise": r.announce(ctx, t, a.Node, a.Routes) case "cli": - hostname, ok := strings.CutPrefix(strings.Join(a.Args, " "), "set --hostname=") + args := strings.Join(a.Args, " ") + if args == "logout" { + require.NoError(t, r.clients[a.Node].LogoutAndDisconnect(ctx), "%s: logout", step.Name) + + continue + } + + hostname, ok := strings.CutPrefix(args, "set --hostname=") require.True(t, ok, "%s: no replay for cli %q", step.Name, a.Args) r.hostinfo[a.Node].Hostname = hostname @@ -572,18 +659,66 @@ func (r *stepReplay) apply(t *testing.T, step testcapture.Step) { case "logout": require.NoError(t, r.clients[a.Node].LogoutAndDisconnect(ctx), "%s: logout", step.Name) - case "wait", "retire": - // Waits are SaaS settle time; retire only frees SaaS devices. + case "retire": + // SaaS stops the daemon and deletes its devices. + r.clients[a.Node].Disconnect(t) + + for _, nv := range r.machineNodes(a.Node) { + changes, err := r.srv.State().DeleteNode(nv) + require.NoError(t, err, "%s: retire %s", step.Name, a.Node) + r.srv.App.Change(changes...) + } + + case "wait": + // SaaS settle time. default: t.Fatalf("%s: no replay for action %q", step.Name, a.Kind) } } + + return refused } -// api replays one admin exchange. Device paths go to the v2 API; key -// mints and expiry, which the v2 API lacks or would answer with secrets, -// go to State. +// requestTags is the Hostinfo.RequestTags a login sends: the action's when +// it set them, else the ones the node sent last. +func requestTags(a testcapture.Action, last []string) []string { + if a.RequestTags == nil { + return last + } + + return *a.RequestTags +} + +// approver completes an interactive login as the user who owns key. +func (r *stepReplay) approver(ctx context.Context, t *testing.T, key string) func(string) error { + t.Helper() + + user, ok := r.keyUsers[key] + require.True(t, ok, "interactive login for unknown key %s", key) + require.Empty(t, r.keyTags[key], "interactive login for tagged key %s", key) + + return func(authID string) error { + return r.srv.ApproveAuth(ctx, authID, user.Name) + } +} + +func (r *stepReplay) setPolicy(t *testing.T, stepName, policy string) { + t.Helper() + + changed, err := r.srv.State().SetPolicy(convertPolicyEmails(t, r.c.TestID, policy)) + require.NoError(t, err, "%s: policy", stepName) + + if changed { + changes, err := r.srv.State().ReloadPolicy() + require.NoError(t, err) + r.srv.App.Change(changes...) + } +} + +// api replays one admin exchange. Device and key deletes go to the v2 API; +// key mints and expiry, which the v2 API lacks or would answer with +// secrets, go to State. func (r *stepReplay) api(t *testing.T, stepName string, a testcapture.Action) { t.Helper() @@ -591,7 +726,13 @@ func (r *stepReplay) api(t *testing.T, stepName string, a testcapture.Action) { case a.Method == http.MethodGet: return + case a.Method == http.MethodPost && a.Path == "/tailnet/-/acl": + require.Equal(t, http.StatusOK, a.Status, "%s: replay of a refused policy", stepName) + r.setPolicy(t, stepName, string(a.Body)) + case a.Method == http.MethodPost && a.Path == "/tailnet/-/keys": + require.Equal(t, http.StatusOK, a.Status, "%s: replay of a refused mint %s", stepName, a.Key) + var body struct { Capabilities struct { Devices struct { @@ -606,19 +747,33 @@ func (r *stepReplay) api(t *testing.T, stepName string, a testcapture.Action) { } require.NoError(t, json.Unmarshal(a.Body, &body), "%s: key body", stepName) + // The admin mints as the tailnet owner; a user's own key mints as + // that user. + user := r.admin + if name, ok := strings.CutPrefix(a.Principal, "user:"); ok { + user, ok = r.users[name] + require.True(t, ok, "%s: mint as unknown %s", stepName, a.Principal) + } + create := body.Capabilities.Devices.Create expiry := time.Now().Add(time.Duration(body.ExpirySeconds) * time.Second) - uid := types.UserID(r.admin.ID) + uid := types.UserID(user.ID) pak, err := r.srv.State().CreatePreAuthKey(&uid, create.Reusable, create.Ephemeral, &expiry, create.Tags) require.NoError(t, err, "%s: mint %s", stepName, a.Key) r.keys[a.Key] = pak.Key + r.keyIDs[a.Key] = pak.ID + r.keyTags[a.Key] = create.Tags + r.keyUsers[a.Key] = user - case a.Method == http.MethodDelete && strings.HasPrefix(a.Path, "/tailnet/-/keys/"): - pak, err := r.srv.State().GetPreAuthKey(r.keys[a.Key]) - require.NoError(t, err, "%s: key %s", stepName, a.Key) - require.NoError(t, r.srv.State().DeletePreAuthKey(pak.ID), "%s: delete %s", stepName, a.Key) + case a.Method == http.MethodDelete && strings.HasPrefix(a.Path, "/tailnet/-/keys/{key:"): + label := strings.TrimSuffix(strings.TrimPrefix(a.Path, "/tailnet/-/keys/{key:"), "}") + id, ok := r.keyIDs[label] + require.True(t, ok, "%s: delete of unknown key %q", stepName, label) + + status, resp := r.call(t, a.Method, "/api/v2/tailnet/-/keys/"+strconv.FormatUint(id, 10), nil) + require.Equal(t, a.Status, status, "%s: %s %s: %s", stepName, a.Method, a.Path, resp) case a.Method == http.MethodPost && strings.HasSuffix(a.Path, "/expire"): now := time.Now()