[Feature] Track for supporting Tailscale Peer Relays #1129

Open
opened 2025-12-29 02:28:28 +01:00 by adam · 2 comments
Owner

Originally created by @ArcticLampyrid on GitHub (Oct 30, 2025).

Use case

For flexible networks such as home labs, Peer Relays provide a more adaptable relay solution than self-hosted DERP, and they are easier to deploy in environments without a fixed IP address or on shallow layers of multi-level NATs to enable localized acceleration.

Description

Tailscale Peer Relays provides a customer-deployed and managed traffic relaying mechanism. By advertising itself as a peer relay, a Tailscale node can relay traffic for any peer nodes on the tailnet, even for traffic bound to itself.
(See https://tailscale.com/blog/peer-relays-beta & https://tailscale.com/kb/1591/peer-relays for more information)

This is a newly introduced feature. I’m creating this issue to track Headscale’s support for it.

Contribution

  • I can write the design doc for this feature
  • I can contribute this feature

How can it be implemented?

I haven’t looked into the details yet, but it seems to depend on the implementation of grants.

{
  "grants": [
    {
        "src": ["tag:us-east-vpc"], // Devices behind a restrictive NAT that need to be accessed through the peer relay
        "dst": ["tag:us-east-relays"], // The devices functioning as peer relays for the src devices
        "app": {
            "tailscale.com/cap/relay": []
        }
    }
  ]
}
Originally created by @ArcticLampyrid on GitHub (Oct 30, 2025). ### Use case For flexible networks such as home labs, Peer Relays provide a more adaptable relay solution than self-hosted DERP, and they are easier to deploy in environments without a fixed IP address or on shallow layers of multi-level NATs to enable localized acceleration. ### Description > Tailscale Peer Relays provides a customer-deployed and managed traffic relaying mechanism. By advertising itself as a peer relay, a Tailscale node can relay traffic for any peer nodes on the tailnet, even for traffic bound to itself. > (See https://tailscale.com/blog/peer-relays-beta & https://tailscale.com/kb/1591/peer-relays for more information) This is a newly introduced feature. I’m creating this issue to track Headscale’s support for it. ### Contribution - [ ] I can write the design doc for this feature - [ ] I can contribute this feature ### How can it be implemented? I haven’t looked into the details yet, but it seems to depend on the implementation of grants. ```json { "grants": [ { "src": ["tag:us-east-vpc"], // Devices behind a restrictive NAT that need to be accessed through the peer relay "dst": ["tag:us-east-relays"], // The devices functioning as peer relays for the src devices "app": { "tailscale.com/cap/relay": [] } } ] } ```
adam added the enhancementno-stale-botgrants labels 2025-12-29 02:28:28 +01:00
Author
Owner

@ArcticLampyrid commented on GitHub (Oct 30, 2025):

May depend on:

@ArcticLampyrid commented on GitHub (Oct 30, 2025): May depend on: - https://github.com/juanfont/headscale/issues/2180
Author
Owner

@cheetah747 commented on GitHub (Dec 25, 2025):

I'm wating for this feature too.

@cheetah747 commented on GitHub (Dec 25, 2025): I'm wating for this feature too.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/headscale#1129