Proiectul Headscale dezvoltă o implementare deschisă a componentei server VPN a rețelei Tailscale, permițând crearea de rețele VPN similare Tailscale pe propriile resurse, fără a depinde de servicii externe. Codul Headscale este scris în limbajul Go și este distribuit sub licența BSD. Proiectul este dezvoltat de Juan Font de la Agenția Spațială Europeană.
Tailscale permite conectarea unui număr arbitrar de gazde dispersate geografic într-o rețea construită pe modelul unei rețele mesh, în care fiecare nod interacționează direct cu celelalte noduri (P2P) sau prin noduri vecine, fără a transmite traficul prin servere externe centralizate. VPN-provider. Este suportată gestionarea accesului și a rutelor bazate pe ACL. Pentru stabilirea canalelor de comunicare în condiții de utilizare a translatorilor de adrese (NAT), este oferit suport pentru mecanismele STUN, ICE și DERP (analog TURN, dar pe bază de HTTPS). În cazul blocării canalului de comunicare între anumite noduri, rețeaua poate reconstrui rutarea pentru a direcționa traficul prin alte noduri.

Proiectul Nebula, de asemenea destinat creării de rețele VPN distribuite cu rutare mesh, se deosebește de Tailscale prin utilizarea protocolului Wireguard pentru organizarea transferului de date între noduri, în timp ce în Nebula sunt folosite soluțiile proiectului Tinc, care utilizează algoritmul AES-256-GSM pentru criptarea pachetelor (în Wireguard se folosește criptograficul ChaCha20, care în teste demonstrează o capacitate de transmitere și o reacție mai bună).
De asemenea, se dezvoltă un alt proiect similar - Innernet, în care protocolul Wireguard este folosit și pentru schimbul de date între noduri. Spre deosebire de Tailscale și Nebula, Innernet utilizează un alt sistem de separare a accesului, bazat nu pe ACL cu atașarea de etichete la noduri individuale, ci pe segmentarea subrețelelor și alocarea diferitelor intervale. adreselor IP, ca în rețelele obișnuite de internet. În plus, spre deosebire de limbajul Go, Innernet folosește limbajul Rust. Acum trei zile a fost publicată actualizarea Innernet 1.5 cu suport îmbunătățit pentru ocolirea NAT. Există, de asemenea, proiectul Netmaker, care permite conectarea rețelelor cu topologii diferite folosind Wireguard, dar codul său este livrat sub licența SSPL (Server Side Public License), care nu este deschisă datorită cerințelor discriminatorii.
Tailscale este distribuit sub un model Freemium, ceea ce înseamnă că utilizatorii individuali pot beneficia de utilizare gratuită, în timp ce organizațiile și echipele au acces platit. Componentele client Tailscale, cu excepția aplicațiilor grafice pentru Windows și macOS, sunt dezvoltate sub formă de proiecte deschise cu licența BSD. Software-ul serverului Tailscale, care asigură autentificarea la conectarea noilor clienți, coordonează gestionarea cheilor și organizează interacțiunea între noduri, este proprietar. Proiectul Headscale remediază această problemă și oferă o implementare deschisă a componentelor serverului Tailscale.

Headscale preia funcțiile de schimb de chei publice între noduri, precum și execută operațiuni de asignare a adreselor IP și distribuție a tabelelor de rutare între noduri. În forma sa actuală, Headscale implementează toate funcționalitățile de bază ale serverului de gestionare, cu excepția suportului pentru MagicDNS și Smart DNS. În special, funcțiile de înregistrare a nodurilor (inclusiv prin web), adaptarea rețelei la adăugarea sau eliminarea nodurilor, divizarea subrețelelor prin intermediul spațiilor de nume (o rețea VPN poate fi creată pentru mai mulți utilizatori), organizarea accesului comun al nodurilor la subrețele din diferite spații de nume, gestionarea rutării (inclusiv asignarea nodurilor de ieșire pentru accesarea lumii externe), divizarea accesului prin ACL și funcționarea serviciului DNS sunt toate suportate.
Sursa: opennet.ro
