Néhány nappal ezelőtt itt a blogon beszéltünk a Firezone-ról, ami egy kiváló segédprogram WireGuard-alapú VPN-kiszolgálók létrehozásához.
És most, ez alkalommal, egy nagyon hasonló segédprogramról, a "Headscale"-ről fogunk beszélni, amely a Tailscale VPN szerver komponens nyílt forráskódú implementációjaként fejlesztett projekt , lehetővé téve Tailscale-szerű VPN-ek létrehozását saját telephelyünkön anélkül, hogy harmadik féltől származó szolgáltatásokhoz lennénk kötve.
A Tailscale lehetővé teszi tetszőleges számú, földrajzilag szétszórt hoszt egyesítését egy hálózatba , amely egy mesh hálózat képére épül, amelyben minden csomópont közvetlenül (P2P) vagy szomszédos csomópontokon keresztül kommunikál más csomópontokkal anélkül, hogy a forgalmat a VPN-szolgáltató központosított külső szerverein keresztül továbbítaná.
Az ACL-alapú útvonal- és hozzáférés-vezérlés támogatása , valamint a kommunikációs csatornák hálózati címfordítás (NAT) használati feltételek melletti létrehozásának lehetővé tétele mellett a rendszer támogatja a STUN, ICE és DERP mechanizmusokat (a TURN-hez hasonlóan, de HTTPS-en alapulva). Ha bizonyos csomópontok közötti kommunikációs csatorna blokkolva van, a hálózat átirányíthatja a forgalmat más csomópontokon keresztül.
A Tailscale különbözik a Nebula projekttől , amely szintén elosztott VPN-hálózatok létrehozására szolgál mesh routinggal, a Wireguard protokollt használva a csomópontok közötti adatátvitel megszervezésére, míg a Nebula a Tinc projekt fejlesztéseit használja, amely az AES-256 algoritmust használja a GSM-csomagok titkosítására (a Wireguard a ChaCha20 titkosítást használja, amely a tesztekben nagyobb teljesítményt és válaszidőt mutatott).
Egy másik hasonló projekt, az Innernet, külön fejlesztés alatt áll, amelyben szintén a Wireguard protokollt használják a csomópontok közötti adatcserére. A Tailscale-lel és a Nebulával ellentétben az Innernet egy eltérő, ACL-eken alapuló hozzáférés-elválasztási rendszert használ; a címkék nem kapcsolódnak az egyes csomópontokhoz és alhálózatokhoz a különböző IP-címtartományok elválasztása és izolálása érdekében, mint a hagyományos internetes hálózatokban.
Ezenkívül az Innernet a Go helyett a Rust -ot használja, és érdemes megemlíteni, hogy néhány nappal ezelőtt megjelent az Innernet 1.5 javított NAT bejárási támogatással. Van egy Netmaker projekt is, amely lehetővé teszi, hogy a Wireguard segítségével különböző topológiájú hálózatokat csatlakoztasson, de a kódját az SSPL (Server Side Public License) alatt szállítják, amely a diszkriminatív követelmények miatt nem nyitott.
A Tailscale freemium modellen kerül terjesztésre, ingyenes hozzáférést biztosítva magánszemélyek, valamint fizetős hozzáférést vállalkozások és csapatok számára. A Tailscale klienskomponensei, a Windows és macOS grafikus alkalmazásai kivételével, nyílt forráskódú projektként, BSD licenc alatt készülnek.
A Tailscale kiszervezett szerverszoftvere, amely hitelesíti az új klienseket , koordinálja a kulcskezelést és megszervezi a csomópontok közötti kommunikációt, saját fejlesztésű. A Headscale projekt ezt a problémát kezeli, és egy nyílt forráskódú implementációt biztosít, amely független a Tailscale szerverösszetevőitől.
A Headscale átveszi a nyilvános kulcsok csomópontok közötti cseréjének funkcióit , valamint elvégzi az IP-cím kiosztásának és az útválasztási tábla elosztásának műveleteit a csomópontok között.
Jelenlegi formájában a Headscale a felügyeleti szerverek összes alapvető funkcióját megvalósítja, a MagicDNS és a Smart DNS támogatásának kivételével. Konkrétan támogatja a csomópontok regisztrációját (beleértve a weben keresztüli hozzáférést is), a hálózat módosítását csomópontok hozzáadásához vagy eltávolításához, névterek használatával történő alhálózatkezelést (lehetővé téve VPN létrehozását több felhasználó számára), a megosztott csomópont-hozzáférés megszervezését a különböző névterekben lévő alhálózatokhoz, az útvonalvezérlést (beleértve a kimenő csomópontok hozzárendelését a külvilág eléréséhez), a megosztott hozzáférést ACL-eken keresztül és a DNS-végrehajtást.
A Fejskála kód Go -ban van írva, és a BSD licenc alatt kerül forgalomba. A projektet Juan Font, az Európai Űrügynökség munkatársa fejleszti.
Végül, ha további részletekre vagy kíváncsi, a következő linken megtalálod a részleteket.