W ramach projektu Headscale opracowywany jest otwarty serwer dla rozproszonej sieci VPN Tailscale

Projekt Headscale opracowuje otwartą implementację komponentu serwerowego sieci Tailscale VPN, która umożliwia tworzenie sieci VPN podobnych do Tailscale we własnych obiektach, bez konieczności wiązania się z usługami stron trzecich. Kod Headscale jest napisany w Go i rozpowszechniany na licencji BSD. Projekt jest rozwijany przez Juana Fonta z Europejskiej Agencji Kosmicznej.

Tailscale umożliwia połączenie dowolnej liczby rozproszonych geograficznie hostów w jedną sieć zbudowaną na wzór sieci mesh, w której każdy węzeł współdziała z innymi węzłami bezpośrednio (P2P) lub za pośrednictwem węzłów sąsiednich, bez przesyłania ruchu przez scentralizowane serwery zewnętrzne VPN dostawca. Obsługiwana jest kontrola dostępu i tras oparta na liście ACL. Aby ustanowić kanały komunikacji podczas korzystania z tłumaczy adresów (NAT), zapewniona jest obsługa mechanizmów STUN, ICE i DERP (analogicznie do TURN, ale w oparciu o HTTPS). Jeśli kanał komunikacyjny pomiędzy określonymi węzłami jest zablokowany, sieć może przebudować routing, aby skierować ruch przez inne węzły.

W ramach projektu Headscale opracowywany jest otwarty serwer dla rozproszonej sieci VPN Tailscale

Tailscale różni się od projektu Nebula, przeznaczonego również do tworzenia rozproszonych sieci VPN z routingiem mesh, wykorzystaniem protokołu Wireguard do organizacji przesyłania danych pomiędzy węzłami, natomiast Nebula wykorzystuje rozwinięcia projektu Tinc, który do szyfrowania pakietów wykorzystuje algorytm AES-256 -GSM (Wireguard wykorzystuje szyfr ChaCha20, który w testach wykazuje wyższą przepustowość i responsywność).

Osobno rozwijany jest inny podobny projekt - Innernet, w którym protokół Wireguard służy również do wymiany danych pomiędzy węzłami. W przeciwieństwie do Tailscale i Nebula, Innernet wykorzystuje inny system separacji dostępu, oparty nie na listach ACL ze znacznikami przypisanymi do poszczególnych węzłów, ale na separacji podsieci i przydzieleniu różnych zakresów adresów IP, tak jak w zwykłych sieciach internetowych. Ponadto zamiast języka Go, Innernet używa języka Rust. Trzy dni temu opublikowano aktualizację Innernet 1.5 z ulepszoną obsługą przejścia NAT. Istnieje również projekt Netmaker, który umożliwia łączenie sieci o różnych topologiach za pomocą Wireguard, ale jego kod jest dostarczany na licencji SSPL (Server Side Public License), która nie jest otwarta ze względu na obecność dyskryminujących wymagań.

Tailscale jest dystrybuowany w modelu freemium, co oznacza bezpłatne korzystanie dla osób fizycznych i płatny dostęp dla firm i zespołów. Komponenty klienckie Tailscale, z wyjątkiem aplikacji graficznych dla systemów Windows i macOS, są opracowywane jako otwarte projekty na licencji BSD. Oprogramowanie serwera działające po stronie Tailscale jest autorskie, zapewnia uwierzytelnianie przy podłączaniu nowych klientów, koordynuje zarządzanie kluczami i organizuje komunikację pomiędzy węzłami. Projekt Headscale usuwa tę wadę i oferuje niezależną, otwartą implementację komponentów backendowych Tailscale.

W ramach projektu Headscale opracowywany jest otwarty serwer dla rozproszonej sieci VPN Tailscale

Headscale przejmuje funkcje wymiany kluczy publicznych węzłów, a także realizuje operacje przydzielania adresów IP i dystrybucji tablic routingu pomiędzy węzłami. W obecnej formie Headscale implementuje wszystkie podstawowe możliwości serwera zarządzającego, z wyjątkiem obsługi MagicDNS i Smart DNS. W szczególności funkcje rejestracji węzłów (w tym przez WWW), dostosowywania sieci do dodawania lub usuwania węzłów, rozdzielania podsieci za pomocą przestrzeni nazw (można utworzyć jedną sieć VPN dla kilku użytkowników), organizowania współdzielonego dostępu węzłów do podsieci w różnych przestrzeniach nazw , kontrola routingu (w tym przydzielanie węzłów wyjściowych umożliwiających dostęp do świata zewnętrznego), separacja dostępu poprzez listy ACL i działanie usług DNS.

Źródło: opennet.ru

Dodaj komentarz