Projekt Headscale vyvíja otvorenú implementáciu serverovej súčasti VPN siete Tailscale, ktorá umožňuje vytvárať VPN siete podobné Tailscale na vlastných zdrojoch, bez viazania sa na externé služby. Kód Headscale je napísaný v Go a je šírený pod licenciou BSD. Projekt vedie Juan Font Alonso z Európskej vesmírnej agentúry.
Tailscale umožňuje spojiť ľubovoľný počet teritoriálne rozdelených hostiteľov do jednej siete, postavenej na princípe mesh siete, v ktorej každý uzol komunikuje s inými uzlami priamo (P2P) alebo prostredníctvom susedných uzlov, bez prenosu dát cez centralizované externé servery. VPN-poskytovateľa. Podporuje sa správa prístupu a trás na základe ACL. Na vytváranie komunikačných kanálov v podmienkach používania prekladateľov adries (NAT) sa poskytuje podpora mechanizmov STUN, ICE a DERP (podobné TURN, ale na báze HTTPS). V prípade zablokovania komunikačného kanála medzi určitými uzlami môže sieť prebudovať smerovanie pre prenos dát cez iné uzly.

Od projektu Nebula, ktorý je tiež určený na vytváranie distribuovaných VPN sietí s mesh smerovaním, sa Tailscale odlišuje použitím protokolu Wireguard na organizovanie prenosu dát medzi uzlami, zatiaľ čo v Nebula sa používajú technológie projektu Tinc, v ktorom sa na šifrovanie paketov používa algoritmus AES-256-GCM (v Wireguard sa používa šifrovanie ChaCha20, ktoré v testoch ukazuje vyššiu priepustnosť a reakčnosť).
Osobitne sa vyvíja ďalší podobný projekt — Innernet, v ktorom sa na výmenu dát medzi uzlami tiež používa protokol Wireguard. Na rozdiel od Tailscale a Nebula v Innernet sa používa iný systém rozdelenia prístupu, založený nie na ACL s viazaním značiek na jednotlivé uzly, ale na rozdelení podsietí a vyčlenení rôznych rozhraní, IP adresy, ako v bežných internetových sieťach. Navyše, namiesto jazyka Go sa v Innernet používa jazyk Rust. Pred tromi dňami bolo zverejnené aktualizované vydanie Innernet 1.5 s vylepšenou podporou obchádzania NAT. Existuje aj projekt Netmaker, ktorý umožňuje spájať siete rôznej topológie pomocou Wireguard, avšak jeho kód je distribuovaný pod licenciou SSPL (Server Side Public License), ktorá nie je otvorená kvôli diskriminačným požiadavkám.
Tailscale sa šíri pomocou modelu Freemium, ktorý umožňuje bezplatné používanie pre jednotlivcov a platený prístup pre podniky a tímy. Klientske komponenty Tailscale, s výnimkou grafických aplikácií pre Windows a macOS, sa vyvíjajú vo forme otvorených projektov pod licenciou BSD. Serverový softvér Tailscale, ktorý zaisťuje autentifikáciu pri pripojení nových klientov, koordinuje správu kľúčov a organizuje interakciu medzi uzlami, je proprietary. Projekt Headscale tento nedostatok odstraňuje a ponúka nezávislú otvorenú implementáciu serverových komponentov Tailscale.

Headscale prevádza funkcie výmeny otvorených kľúčov uzlov, ako aj vykonáva operácie prideľovania IP adries a distribúcie smerovacích tabuliek medzi uzlami. V súčasnej podobe sú v Headscale implementované všetky základné možnosti riadiaceho servera, s výnimkou podpory MagicDNS a Smart DNS. Konkrétne sú podporované funkcie registrácie uzlov (vrátane cez web), prispôsobenie siete na pridávanie alebo odstraňovanie uzlov, rozdelenie podsietí pomocou priestorov názvov (jedna VPN sieť môže byť vytvorená pre viacerých používateľov), organizovanie zdieľania uzlov k podsietiam v rôznych priestoroch názvov, správa smerovania (vrátane priradenia výstupných uzlov na prístup k vonkajšiemu svetu), rozdelenie prístupu cez ACL a prevádzka DNS služby.
Zdroj: opennet.ru
