tailscale / tailscale/tailscale
FR: Geocast Tailscale IP addresses based on latency
- Dominant language
- Go
- Stars
- 36.5k
- Forks
- 3.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 123
Description
### What are you trying to do?
I'd like to have static Tailscale IPs resolving devices based on tags and latency.
My goal is to disseminate corporate DNS servers around the world and be able to have Tailscale select automatically one devices based on latency from the client.
```mermaid
graph LR;
A["client (Japan)"] ------> B["100.100.200.1 (tag:dns)"];
B ======> C["100.64.u.v DNS-01 (Malaysia, tag:dns, latency=45ms)"];
B ------> D["100.64.x.y DNS-02 (Germany, tag:dns, latency=230ms)"];
```
```mermaid
graph LR;
E["client (France)"] ------> B["100.100.200.1 (tag:dns)"];
B ------> C["100.64.u.v DNS-01 (Malaysia tag:dns, latency=180ms)"];
B ======> D["100.64.x.y DNS-02 (Germany tag:dns, latency=15ms)"];
```
In this all devices tagged `dns` would also have the `100.100.200.1` IP on the tailscale interface and traffic towards 100.100.200.1 would be forwarded to the device having the smallest latency with the client.
### How should we solve this?
Code, lots of but not too much.
### What is the impact of not solving this?
I'd be sad :'(
### Anything else?
Tailscale rocks.
Contributor guide
Assessment
This issue has not been assessed yet.