Tailscale Peer Relays

tailscale.com

353 points by seemaze 2 days ago


aborsy - a day ago

Great! This feature made a lot of sense, and it took a long time.

It’s like falling back to hub and spoke, except that the traffic is end to end encrypted, and the middle node is used only when direct connection is not possible, and for some clients. It’s also similar to running your own derp server (which works also in TCP), but without the hassle of doing so, and perhaps without having to open ports to the internet (needed in derp) so long as the relay is reachable by peers.

The derp servers have low throughput. Another option could be a pay-as-you-go derp service.

They might also be on their way to remove the need for reverse proxies, with the recent announcement on Tailscale services.

BTW, why could it be paid for more than two relays? You are using just your own devices and bandwidth :)

It actually lower the bandwidth bill for Tailscale by reducing the usage of their own relays. Ideally, by default the software will find whatever nodes could help with direct connection. It’s just routing within your own network.

homebrewer - 2 days ago

This was better solved by tinc about 20 years ago. All tinc nodes can work as relays (but you can disallow that if you want), it does not rely on a centralized server, and works fine without access to the internet. It is a true mesh. The world would be better served by porting tinc to wireguard and some memory safe language instead of reimplementing parts of its functionality from scratch.

elcritch - a day ago

> We believe our new Tailscale Peer Relays connectivity option—unique to Tailscale—gives customers the best performance and flexibility.

Seems pretty similar to some of the stuff ZeroTier was doing years ago. Hard to claim it's unique to Tailscale. Charging for it above and beyond the per user costs seems overboard as well.

chaz6 - 15 hours ago

Is it possible to specify the external ipv4 and ipv6 address? There are scenarios where the eggress traffic uses a different address to ingress, or the host has multiple internet-connected addresses but only one has a firewall permitting traffic to the nominated port.

mercutio2 - a day ago

Wow! I just spent a good chunk of time last week setting up headscale and split horizon SSL behind my network, and I expected I was going to just expose a Wireguard UDP port, but discovered no, it’s DERP or nothing. DERP has been OK, but I think just exposing a UDP port on my local network is better.

If we’re really confident in the security of that UDP client, that is. I feel very comfortable exposing a Wireguard bastion, time will tell how secure whatever protocol tailscale is serving, here, will be.

apitman - a day ago

Main downside I see compared to DERP is there's no way for this to work in the browser since it's native UDP. I wonder if it'd be possible to make it work over WebTransport in the future.

xeonmc - 2 days ago

I wonder if the next step could be to have all tailscale clients automatically able to accept forwarding requests between any two machines within the tailnet, so that the mesh seamlessly auto-routes around any breaks within the mesh?

depr - a day ago

You can use Tailscale to connect services together (not just someone's laptop to a service, replacing OpenVPN), but what if Tailscale has an outage? Will my services not be able to find each other anymore?

cpressland - 2 days ago

I was literally looking for a solution for this over the weekend and ended up with a very quirky setup for my Kubernetes Operator.

Now I can rip all that out and use this! Bravo!

zerkten - a day ago

What's the use case for this? It seems to be for situations where you might have a SaaS product, but there is some data required from a customer system. You'd expose the customer data using this relay and integrate into the SaaS. Is that the gist of it? Integration would still likely involve you giving the customer some software to expose a limited API and handle auth, logging, etc.

HexDecOctBin - 2 days ago

Hard to parse the networking jargon, but does this enable offline connections?

If I have two devices on my local LAN (both connected to a Tailnet) and my home internet goes, currently the devices disconnect from each other. I have been looking for a way to prevent that, so that the all devices connected to the same WiFi network on a tailnet can find each other even if the internet connection to the wider world is broken.

moontear - a day ago

One thing I didn’t understand: it uses an UDP port of my choice. What IP is it using? Everything via the tailnet or do I need to open this port to the internet?

If only available via Tailscale/tailnet - how is connectivity better since if two devices can connect to each other via Tailscale we are already on the direct connection route instead of a relay / derp connection?!

alanchen - a day ago

Any reason this is not supported on iOS/tvOS devices? Would love to make it work on my Apple TV!

skeptrune - a day ago

Yay! Excited to see them building this in public.

I recall that tailscale DERP servers were always slow and made things feel delayed when they had to be used as a relay.

amluto - 2 days ago

How does this interact with machines that are shared from one Tailnet to another? Is there specific syntax to grant the appropriate permission to a user or device that accesses the destination via sharing?

The docs also say:

> As a rule of thumb, the src devices in the grant policy should typically be devices in a stable physical location behind a strict NAT or firewall that prevents direct connections. This typically includes devices in corporate networks or cloud environments. It usually does not include mobile devices or laptops that frequently change locations and network conditions.

Is there some reason that one should not set up a peer relay to enable a laptop to access a machine that is behind a NAT? (Tailscale regularly fails to establish direct connectivity from a laptop behind a NAT to a machine that's behind a different NAT, at least in my experience.)

liuliu - 2 days ago

How to do site-to-site traffic over Tailscale / WG encryption? From preliminary testing, it seems have difficulty to saturate a 10Gbps connection while plain HTTP (nginx) traffic does that fine. Of course it should vary from CPU to CPU, but any tips how to improve that? Ideally I would love to go over with encrypted traffic, although everything is public, just one less thing need to be careful (in case future need to transport some non-public data over).

Deathmax - a day ago

I can finally tear down my custom DERP server that I was using to get higher throughput between two NAT'd clients.

max-privatevoid - a day ago

Why go through the effort of reimplementing all this instead of using libp2p?

fariszr - a day ago

Is there a way to force clients to use a relay? It seems like this is only meant as a fallback, but what if a relayed connection is actually faster (like when direct peering between tailnet members is slow, not rare in consumer connections)

snapplebobapple - a day ago

Tailscale playing catchup to netbird...

lukashahnart - a day ago

I love Tailwind and use it on all my devices, but I'm not sure I really understand what this is.

Uptrenda - 17 hours ago

Doesn't Libp2p do this relay stuff already? Like, its their core model (and their NAT code is limited.)

rcarmo - a day ago

OK, another use for port 1337. Anyone got a better, mnemonically memorable choice in the low range?

viaoktavia - 15 hours ago

[dead]

syahlanahda - a day ago

[flagged]

selasa67118 - a day ago

[flagged]

fukka42 - a day ago

> All customers can use two peer relays, for free, forever. As your needs scale, so will the number of available peer relays. To add even more peer relays to your tailnet, come have a chat with us.

I have to pay to be able to donate my own infra to make tailscale's service better?