tailscale/ipn/ipnlocal
Brad Fitzpatrick 3ae701f0eb net/tsaddr, wgengine/netstack: add IPv6 range that forwards to site-relative IPv4
This defines a new magic IPv6 prefix, fd7a:115c:a1e0:b1a::/64, a
subset of our existing /48, where the final 32 bits are an IPv4
address, and the middle 32 bits are a user-chosen "site ID". (which
must currently be 0000:00xx; the top 3 bytes must be zero for now)

e.g., I can say my home LAN's "site ID" is "0000:00bb" and then
advertise its 10.2.0.0/16 IPv4 range via IPv6, like:

    tailscale up --advertise-routes=fd7a:115c:a1e0:b1a::bb:10.2.0.0/112

(112 being /128 minuse the /96 v6 prefix length)

Then people in my tailnet can:

     $ curl '[fd7a:115c:a1e0:b1a::bb:10.2.0.230]'
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ....

Updates #3616, etc

RELNOTE=initial support for TS IPv6 addresses to route v4 "via" specific nodes

Change-Id: I9b49b6ad10410a24b5866b9fbc69d3cae1f600ef
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-04-11 17:26:07 -07:00
..
dnsconfig_test.go ipnlocal, net/{dns,tsaddr,tstun}, wgengine: support MagicDNS on IPv6 2022-01-04 14:37:22 -08:00
local_test.go ipn/store: add common package for instantiating ipn.StateStores 2022-02-28 13:23:33 -08:00
local.go net/tsaddr, wgengine/netstack: add IPv6 range that forwards to site-relative IPv4 2022-04-11 17:26:07 -07:00
loglines_test.go ipn/store: add common package for instantiating ipn.StateStores 2022-02-28 13:23:33 -08:00
peerapi_h2c.go ipn/ipnlocal: add HTTP/2 h2c server support to peerapi on non-mobile platforms 2021-12-06 16:39:14 -08:00
peerapi_macios_ext.go net/tsdial: move macOS/iOS peerapi sockopt logic from LocalBackend 2021-12-01 12:55:31 -08:00
peerapi_test.go ipn/ipnlocal: run peerapi even if Taildrop storage not configured 2021-12-01 16:45:09 -08:00
peerapi.go all: use any instead of interface{} 2022-03-17 11:35:09 -07:00
ssh_stub.go ssh: make it build on darwin 2022-02-24 13:00:45 -08:00
ssh_test.go ipn/ipnlocal: generate tailscaled-owned SSH keys as needed 2022-02-24 12:15:57 -08:00
ssh.go tempfork: temporarily fork gliderlabs/ssh and x/crypto/ssh 2022-03-26 21:07:01 -07:00
state_test.go ipn/ipnlocal: do not process old status messages received out of order 2022-03-26 20:23:50 -07:00