<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tailscale/control/controlknobs, branch andrew/execqueue-metrics</title>
<subtitle>The easiest, most secure way to use WireGuard and 2FA</subtitle>
<id>http://git.waynecole.info/tailscale/atom?h=andrew%2Fexecqueue-metrics</id>
<link rel='self' href='http://git.waynecole.info/tailscale/atom?h=andrew%2Fexecqueue-metrics'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/'/>
<updated>2024-07-26T18:25:55Z</updated>
<entry>
<title>health: introduce captive-portal-detected Warnable (#12707)</title>
<updated>2024-07-26T18:25:55Z</updated>
<author>
<name>Andrea Gottardo</name>
<email>andrea@tailscale.com</email>
</author>
<published>2024-07-26T18:25:55Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=90be06bd5b79798fb0fdaa996750acceb96f831c'/>
<id>urn:sha1:90be06bd5b79798fb0fdaa996750acceb96f831c</id>
<content type='text'>
Updates tailscale/tailscale#1634

This PR introduces a new `captive-portal-detected` Warnable which is set to an unhealthy state whenever a captive portal is detected on the local network, preventing Tailscale from connecting.



ipn/ipnlocal: fix captive portal loop shutdown


Change-Id: I7cafdbce68463a16260091bcec1741501a070c95

net/captivedetection: fix mutex misuse

ipn/ipnlocal: ensure that we don't fail to start the timer


Change-Id: I3e43fb19264d793e8707c5031c0898e48e3e7465

Signed-off-by: Andrew Dunham &lt;andrew@du.nham.ca&gt;
Signed-off-by: Andrea Gottardo &lt;andrea@gottardo.me&gt;</content>
</entry>
<entry>
<title>wgengine/magicsock: use wireguard-go/conn.PeerAwareEndpoint</title>
<updated>2024-07-12T15:24:06Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2024-07-09T03:31:16Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=808b4139eec4f9ffcf8fc7a39b0519395efcc165'/>
<id>urn:sha1:808b4139eec4f9ffcf8fc7a39b0519395efcc165</id>
<content type='text'>
If we get an non-disco presumably-wireguard-encrypted UDP packet from
an IP:port we don't recognize, rather than drop the packet, give it to
WireGuard anyway and let WireGuard try to figure out who it's from and
tell us.

This uses the new hook added in https://github.com/tailscale/wireguard-go/pull/27

Updates tailscale/corp#20732

Change-Id: I5c61a40143810592f9efac6c12808a87f924ecf2
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>control/controlknobs,tailcfg,wgengine/magicsock: remove DRPO shutoff switch</title>
<updated>2024-07-07T02:50:53Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2024-07-07T02:29:58Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=d2fef01206cd7a96d684f9c69ba9e767de824ab4'/>
<id>urn:sha1:d2fef01206cd7a96d684f9c69ba9e767de824ab4</id>
<content type='text'>
The DERP Return Path Optimization (DRPO) is over four years old (and
on by default for over two) and we haven't had problems, so time to
remove the emergency shutoff code (controlknob) which we've never
used. The controlknobs are only meant for new features, to mitigate
risk. But we don't want to keep them forever, as they kinda pollute
the code.

Updates #150

Change-Id: If021bc8fd1b51006d8bddd1ffab639bb1abb0ad1
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>various: create a catch-all NRPT rule when "Override local DNS" is enabled on Windows</title>
<updated>2024-06-14T19:41:50Z</updated>
<author>
<name>Nick Khyl</name>
<email>nickk@tailscale.com</email>
</author>
<published>2024-06-11T03:05:15Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=c32efd9118bb8ba63ae5729653d1eaeeaad52149'/>
<id>urn:sha1:c32efd9118bb8ba63ae5729653d1eaeeaad52149</id>
<content type='text'>
Without this rule, Windows 8.1 and newer devices issue parallel DNS requests to DNS servers
associated with all network adapters, even when "Override local DNS" is enabled and/or
a Mullvad exit node is being used, resulting in DNS leaks.

This also adds "disable-local-dns-override-via-nrpt" nodeAttr that can be used to disable
the new behavior if needed.

Fixes tailscale/corp#20718

Signed-off-by: Nick Khyl &lt;nickk@tailscale.com&gt;
</content>
</entry>
<entry>
<title>tailcfg,net/dns: add controlknob to disable battery split DNS on iOS (#12346)</title>
<updated>2024-06-06T22:19:33Z</updated>
<author>
<name>Andrea Gottardo</name>
<email>andrea@tailscale.com</email>
</author>
<published>2024-06-06T22:19:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=b65221999ca2644e917efce394dc0c9603cfacb7'/>
<id>urn:sha1:b65221999ca2644e917efce394dc0c9603cfacb7</id>
<content type='text'>
Updates corp#15802.

Adds the ability for control to disable the recently added change that uses split DNS in more cases on iOS. This will allow us to disable the feature if it leads to regression in production. We plan to remove this knob once we've verified that the feature works properly.

Signed-off-by: Andrea Gottardo &lt;andrea@gottardo.me&gt;</content>
</entry>
<entry>
<title>net/dns/resolver, control/controlknobs, tailcfg: use UserDial instead of SystemDial to dial DNS servers</title>
<updated>2024-05-06T22:29:24Z</updated>
<author>
<name>Nick Khyl</name>
<email>nickk@tailscale.com</email>
</author>
<published>2024-05-02T23:33:13Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=f62e678df8e1d4a3fd3a41f8c847c6b0a3605ac8'/>
<id>urn:sha1:f62e678df8e1d4a3fd3a41f8c847c6b0a3605ac8</id>
<content type='text'>
Now that tsdial.Dialer.UserDial has been updated to honor the configured routes
and dial external network addresses without going through Tailscale, while also being
able to dial a node/subnet router on the tailnet, we can start using UserDial to forward
DNS requests. This is primarily needed for DNS over TCP when forwarding requests
to internal DNS servers, but we also update getKnownDoHClientForProvider to use it.

Updates tailscale/corp#18725

Signed-off-by: Nick Khyl &lt;nickk@tailscale.com&gt;
</content>
</entry>
<entry>
<title>appc: add flag shouldStoreRoutes and controlknob for it</title>
<updated>2024-04-29T18:40:04Z</updated>
<author>
<name>Fran Bull</name>
<email>fran@tailscale.com</email>
</author>
<published>2024-04-11T17:12:13Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=1bd1b387b298a09ae49d7084e644e0f4ff0cb4c2'/>
<id>urn:sha1:1bd1b387b298a09ae49d7084e644e0f4ff0cb4c2</id>
<content type='text'>
When an app connector is reconfigured and domains to route are removed,
we would like to no longer advertise routes that were discovered for
those domains. In order to do this we plan to store which routes were
discovered for which domains.

Add a controlknob so that we can enable/disable the new behavior.

Updates #11008
Signed-off-by: Fran Bull &lt;fran@tailscale.com&gt;
</content>
</entry>
<entry>
<title>all: deprecate Node.Capabilities (more), remove PeerChange.Capabilities [capver 89]</title>
<updated>2024-03-25T04:08:46Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2024-03-23T23:23:59Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=7b34154df221f5613b397226a0b2a9109d183ad7'/>
<id>urn:sha1:7b34154df221f5613b397226a0b2a9109d183ad7</id>
<content type='text'>
First we had Capabilities []string. Then
https://tailscale.com/blog/acl-grants (#4217) brought CapMap, a
superset of Capabilities. Except we never really finished the
transition inside the codebase to go all-in on CapMap. This does so.

Notably, this coverts Capabilities on the wire early to CapMap
internally so the code can only deal in CapMap, even against an old
control server.

In the process, this removes PeerChange.Capabilities support, which no
known control plane sent anyway. They can and should use
PeerChange.CapMap instead.

Updates #11508
Updates #4217

Change-Id: I872074e226b873f9a578d9603897b831d50b25d9
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>all: use reflect.TypeFor now available in Go 1.22 (#11078)</title>
<updated>2024-02-09T01:34:22Z</updated>
<author>
<name>Joe Tsai</name>
<email>joetsai@digital-static.net</email>
</author>
<published>2024-02-09T01:34:22Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=94a4f701c2fbaf914975c15c458f8b3a500e9d9e'/>
<id>urn:sha1:94a4f701c2fbaf914975c15c458f8b3a500e9d9e</id>
<content type='text'>
Updates #cleanup

Signed-off-by: Joe Tsai &lt;joetsai@digital-static.net&gt;</content>
</entry>
<entry>
<title>wgengine/magicsock: implement probing of UDP path lifetime (#10844)</title>
<updated>2024-01-23T17:37:32Z</updated>
<author>
<name>Jordan Whited</name>
<email>jordan@tailscale.com</email>
</author>
<published>2024-01-23T17:37:32Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=8b47322acc2f3dabff40cbc4dcee9576f4d19bc5'/>
<id>urn:sha1:8b47322acc2f3dabff40cbc4dcee9576f4d19bc5</id>
<content type='text'>
This commit implements probing of UDP path lifetime on the tail end of
an active direct connection. Probing configuration has two parts -
Cliffs, which are various timeout cliffs of interest, and
CycleCanStartEvery, which limits how often a probing cycle can start,
per-endpoint. Initially a statically defined default configuration will
be used. The default configuration has cliffs of 10s, 30s, and 60s,
with a CycleCanStartEvery of 24h. Probing results are communicated via
clientmetric counters. Probing is off by default, and can be enabled
via control knob. Probing is purely informational and does not yet
drive any magicsock behaviors.

Updates #540

Signed-off-by: Jordan Whited &lt;jordan@tailscale.com&gt;</content>
</entry>
</feed>
