„Headscale“, atvirojo kodo „Tailscale“ diegimas

Prieš kelias dienas šiame tinklaraštyje kalbėjome apie „Firezone“ – puikią priemonę kuriant „WireGuard“ pagrindu veikiančius VPN serverius.

O dabar, šia proga, pakalbėsime apie labai panašią programą, vadinamą „Headscale“ – tai projektas, sukurtas kaip atvirojo kodo „Tailscale“ VPN serverio komponento įgyvendinimas , leidžiantis kurti „Tailscale“ tipo VPN savo patalpose, neprisirišant prie trečiųjų šalių paslaugų.

„Tailscale“ leidžia sujungti savavališką skaičių geografiškai išsklaidytų mazgų į tinklą , sukurtą pagal tinklinio tinklo vaizdą, kuriame kiekvienas mazgas bendrauja su kitais mazgais tiesiogiai (P2P) arba per kaimyninius mazgus, neperduodamas srauto per centralizuotus išorinius VPN teikėjo serverius.

Be ACL pagrindu veikiančios maršrutų ir prieigos kontrolės palaikymo ir ryšio kanalų kūrimo pagal tinklo adresų vertimo (NAT) naudojimo sąlygas, sistema palaiko STUN, ICE ir DERP mechanizmus (analogiškus TURN, bet pagrįstus HTTPS). Jei ryšio kanalas tarp tam tikrų mazgų yra užblokuotas, tinklas gali nukreipti srautą per kitus mazgus.

„Tailscale“ skiriasi nuo „Nebula“ projekto , kuris taip pat skirtas paskirstytiems VPN tinklams su tinklelio maršrutizavimu kurti, naudojant „Wireguard“ protokolą duomenų perdavimui tarp mazgų organizuoti, o „Nebula“ naudoja „Tinc“ projekto, kuris GSM paketams šifruoti naudoja AES-256 algoritmą („Wireguard“ naudoja „ChaCha20“ šifravimą, kuris bandymuose parodė didesnį našumą ir reagavimą, patobulinimus.

Atskirai kuriamas kitas panašus projektas „Innernet“, kuriame duomenų mainams tarp mazgų taip pat naudojamas „Wireguard“ protokolas. Skirtingai nuo „Tailscale“ ir „Nebula“, „Innernet“ naudoja kitokią prieigos atskyrimo sistemą, pagrįstą ACL; etiketės nėra susietos su atskirais mazgais ir potinkliais, kad būtų galima atskirti ir izoliuoti skirtingus IP adresų diapazonus, kaip įprastuose interneto tinkluose.

Be to, Innernet naudoja Rust vietoj Go ir verta paminėti, kad prieš kelias dienas buvo išleista Innernet 1.5 su patobulintu NAT traversal palaikymu. Taip pat yra „Netmaker“ projektas, leidžiantis prijungti tinklus su skirtingomis topologijomis naudojant „Wireguard“, tačiau jo kodas pateikiamas pagal SSPL (Server Side Public License), kuri nėra atvira dėl diskriminacinių reikalavimų.

„Tailscale“ platinama naudojant freemium modelį, siūlantį nemokamą prieigą privatiems asmenims ir mokamą prieigą įmonėms bei komandoms. „Tailscale“ kliento komponentai, išskyrus grafines programas, skirtas „Windows“ ir „macOS“, yra kuriami kaip atvirojo kodo projektai pagal BSD licenciją.

„Tailscale“ tiekiama serverio programinė įranga, kuri autentifikuoja naujus klientus , koordinuoja raktų valdymą ir organizuoja ryšį tarp mazgų, yra patentuota. „Headscale“ projektas sprendžia šią problemą ir pateikia atvirojo kodo įdiegimą, nepriklausomą nuo „Tailscale“ serverio komponentų.

„Headscale“ atlieka viešojo rakto mainų tarp mazgų funkcijas ir IP adreso priskyrimo bei maršruto lentelės paskirstymo tarp mazgų operacijas.

Dabartine forma „Headscale“ įgyvendina visas pagrindines valdymo serverio funkcijas, išskyrus „MagicDNS“ ir „Smart DNS“ palaikymą. Konkrečiai, ji palaiko mazgų registravimą (įskaitant per internetą), tinklo pritaikymą mazgų pridėjimui arba pašalinimui, potinklių kūrimą naudojant vardų erdves (leidžiant sukurti VPN keliems vartotojams), bendros mazgų prieigos prie potinklių skirtingose ​​vardų erdvėse organizavimą, maršruto valdymą (įskaitant išeinančių mazgų priskyrimą prieigai prie išorinio pasaulio), bendrą prieigą per ACL ir DNS vykdymą.

Headscale kodas parašytas Go ir platinamas pagal BSD licenciją. Projektą kuria Juanas Font iš Europos kosmoso agentūros.

Galiausiai, jei norite sužinoti daugiau, išsamią informaciją galite rasti šioje nuorodoje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje