Headscale-projektet udvikler en åben implementation af serverkomponenten til VPN-netværket Tailscale, der gør det muligt at opbygge Tailscale-lignende VPN-netværk på egne servere uden at være bundet til tredjepartstjenester. Koden til Headscale er skrevet i Go og distribueres under BSD-licensen. Projektet ledes af Juan Font Alonso fra Det Europæiske Rumagentur.
Tailscale gør det muligt at sammenkoble et vilkårligt antal geografisk adskilte værter i ét netværk, der er opbygget som et meshnetsværk, hvor hver node kommunikerer direkte med andre noder (P2P) eller via nabonoder, uden at trafikken sendes gennem centraliserede, eksterne servere. VPN-udbyder. Der understøttes adgangs- og ruteadministration baseret på ACL. For at etablere forbindelser under brug af NAT (Network Address Translation) tilbydes understøttelse af STUN-, ICE- og DERP-mekanismer (analog til TURN, men baseret på HTTPS). Hvis forbindelsen mellem bestemte noder blokeres, kan netværket omkonfigurere routing for at lede trafik gennem andre noder.

Tailscale adskiller sig fra Nebula-projektet, som også er designet til at oprette distribuerede VPN-netværk med mesh-routing, ved at anvende Wireguard-protokollen til datatransmission mellem noder, mens Nebula benytter grundlaget fra Tinc-projektet, hvor AES-256-GSM-algoritmen bruges til kryptering af pakker (i Wireguard anvendes ChaCha20-krypteringen, der i tests viser højere båndbredde og reaktionsevne).
Et andet lignende projekt, der også anvender Wireguard-protokollen til datudveksling mellem noder, er Innernet. I modsætning til Tailscale og Nebula anvender Innernet et andet adgangskontrolsystem, der ikke baseres på ACL med tag-associationer til specifikke noder, men derimod på opdeling af subnet og tildeling af forskellige intervaller IP-adresser, som i almindelige internet-netværk. Derudover anvendes Rust i stedet for Go i Innernet. For tre dage siden blev Innernet 1.5 opdateringen udgivet, som forbedrer understøttelsen af NAT-omgåelse. Der findes også et projekt ved navn Netmaker, som muliggør sammenkobling af netværk med forskellige topologier ved hjælp af Wireguard, men koden til dette projekt leveres under SSPL (Server Side Public License), som ikke er åben på grund af diskriminerende krav.
Tailscale distribueres ved hjælp af en freemium-model, der giver mulighed for gratis brug for enkeltpersoner og betalt adgang for virksomheder og teams. Tailscale-klientkomponenter, undtagen grafiske applikationer til Windows og macOS, udvikles som åbne projekter under BSD-licensen. Den server-software, der kører på Tailscale-selskabets side og sikrer autentifikation ved tilslutning af nye klienter, koordinerer nøgletjenester og organiserer kommunikation mellem noder, er proprietær. Headscale-projektet afhjælper denne mangel og tilbyder en uafhængig, åben implementering af serverkomponenterne i Tailscale.

Headscale håndterer funktionerne ved nøgleudveksling mellem noder samt udfører opgaver som tildeling af IP-adresser og distribution af routingtabeller mellem noder. I sin nuværende tilstand indeholder Headscale alle de grundlæggende funktioner i serveradministrationen, bortset fra understøttelse af MagicDNS og Smart DNS. Især understøttes funktioner som noderegistrering (også via web), tilpasning af netværk ved tilføjelse eller fjernelse af noder, opdeling af subnetværk ved hjælp af navnerum (et VPN-netværk kan oprettes til flere brugere), organisering af fælles adgang til subnetværk blandt forskellige navnerum, styring af routing (herunder tildeling af udgående noder for adgang til omverdenen), kontrol af adgang via ACL og drift af DNS-tjenester.
Kilde: opennet.ru
