Pred pár dňami sme tu na blogu hovorili o Firezone, čo je vynikajúci nástroj na vytváranie VPN serverov založených na WireGuarde.
A teraz si pri tejto príležitosti povieme o veľmi podobnom nástroji s názvom „Headscale“, čo je projekt vyvinutý ako open-source implementácia serverovej komponenty Tailscale VPN , ktorý vám umožňuje vytvárať VPN podobné Tailscale vo vlastných priestoroch bez toho, aby ste boli viazaní na služby tretích strán.
Tailscale umožňuje kombinovať ľubovoľný počet geograficky rozptýlených hostiteľov do siete , vybudovanej na základe obrazu sieťovej siete (mesh network), v ktorej každý uzol komunikuje s ostatnými uzlami priamo (P2P) alebo prostredníctvom susedných uzlov bez prenosu prevádzky cez centralizované externé servery poskytovateľa VPN.
Okrem podpory riadenia trás a prístupu založeného na ACL a umožnenia vytvárania komunikačných kanálov za podmienok používania prekladu sieťových adries (NAT) systém podporuje mechanizmy STUN, ICE a DERP (analogicky s TURN, ale založené na HTTPS). Ak je komunikačný kanál medzi určitými uzlami blokovaný, sieť môže presmerovať prevádzku cez iné uzly.
Tailscale sa líši od projektu Nebula , ktorý je tiež navrhnutý na vytváranie distribuovaných VPN sietí so sieťovým smerovaním, pričom na organizáciu prenosu dát medzi uzlami používa protokol Wireguard, zatiaľ čo Nebula využíva vývoj z projektu Tinc, ktorý na šifrovanie GSM paketov používa algoritmus AES-256 (Wireguard používa šifrovanie ChaCha20, ktoré v testoch preukazuje vyšší výkon a odozvu).
Samostatne sa vyvíja ďalší podobný projekt, Innernet, v ktorom sa na výmenu údajov medzi uzlami tiež používa protokol Wireguard. Na rozdiel od Tailscale a Nebula používa Innernet odlišný systém oddelenia prístupov založený na ACL; štítky nie sú prepojené s jednotlivými uzlami a podsieťami na oddelenie a izoláciu rôznych rozsahov IP adries, ako je to v bežných internetových sieťach.
Innernet tiež používa Rust namiesto Go a stojí za zmienku, že Innernet 1.5 s vylepšenou podporou prechodu NAT bol vydaný pred niekoľkými dňami. Existuje aj projekt Netmaker, ktorý vám umožňuje prepojiť siete s rôznymi topológiami pomocou Wireguardu, ale jeho kód je dodávaný pod licenciou SSPL (Server-Side Public License), ktorá nie je otvorená z dôvodu prítomnosti diskriminačných požiadaviek.
Tailscale je distribuovaný na základe freemium modelu, ktorý ponúka bezplatný prístup pre jednotlivcov a platený prístup pre firmy a tímy. Klientske komponenty Tailscale, s výnimkou grafických aplikácií pre Windows a macOS, sú vyvíjané ako open-source projekty pod licenciou BSD.
Outsourcovaný serverový softvér spoločnosti Tailscale, ktorý overuje nových klientov , koordinuje správu kľúčov a organizuje komunikáciu medzi uzlami, je proprietárny. Projekt Headscale rieši tento problém a poskytuje implementáciu s otvoreným zdrojovým kódom nezávislú od serverových komponentov spoločnosti Tailscale.
Headscale preberá funkcie výmeny verejných kľúčov medzi uzlami a tiež vykonáva operácie priradenia IP adries a distribúcie smerovacích tabuliek medzi uzlami.
V súčasnej podobe implementuje Headscale všetky základné funkcie management servera s výnimkou podpory pre MagicDNS a Smart DNS. Konkrétne podporuje registráciu uzlov (vrátane webu), prispôsobenie siete na pridávanie alebo odoberanie uzlov, vytváranie podsietí pomocou menných priestorov (umožňujúce vytvorenie VPN pre viacerých používateľov), organizovanie prístupu zdieľaných uzlov k podsietiam v rôznych menných priestoroch, riadenie smerovania (vrátane priradenia odchádzajúcich uzlov na prístup do vonkajšieho sveta), zdieľaný prístup prostredníctvom ACL a vykonávanie DNS.
Headscale kód je napísaný v Go a je distribuovaný pod licenciou BSD. Projekt vyvíja Juan Font z Európskej vesmírnej agentúry.
Na záver, ak máte záujem dozvedieť sa viac, podrobnosti nájdete na nasledujúcom odkaze.