Projekt Headscale rozwija otwarty serwer dla rozproszonej sieci VPN Tailscale

Projekt Headscale rozwija otwartą implementację serwera VPN Tailscale, umożliwiającą tworzenie podobnych do Tailscale sieci VPN na własnej infrastrukturze, bez uzależnienia od zewnętrznych usług. Kod Headscale napisano w języku Go i dystrybuowany jest na licencji BSD. Projektem kieruje Juan Font Alonso z Europejskiej Agencji Kosmicznej.

Tailscale pozwala połączyć dowolną liczbę geograficznie rozproszonych hostów w jedną sieć, zbudowaną w stylu sieci mesh, w której każdy węzeł komunikuje się z innymi węzłami bezpośrednio (P2P) lub przez sąsiednie węzły, bez przesyłania ruchu przez scentralizowane zewnętrzne serwery. VPN-dostawcy. Obsługiwane jest zarządzanie dostępem i trasami na podstawie ACL. W celu ustanawiania kanałów komunikacyjnych w warunkach stosowania translacji adresów (NAT) oferowane jest wsparcie dla mechanizmów STUN, ICE i DERP (odpowiednik TURN, ale oparty na HTTPS). W przypadku zablokowania kanału komunikacyjnego między określonymi węzłami, sieć może zmienić trasowanie, aby kierować ruch przez inne węzły.

Projekt Headscale rozwija otwarty serwer dla rozproszonej sieci VPN Tailscale

W przeciwieństwie do projektu Nebula, który również jest przeznaczony do tworzenia rozproszonych sieci VPN z trasowaniem mesh, Tailscale różni się używaniem protokołu Wireguard do organizacji przesyłania danych między węzłami, podczas gdy w Nebula wykorzystuje się technologie projektu Tinc, w którym do szyfrowania pakietów stosuje się algorytm AES-256-GSM (w Wireguard zastosowano szyfr ChaCha20, który w testach wykazuje wyższą przepustowość i responsywność).

Osobno rozwija się jeszcze jeden podobny projekt — Innernet, w którym do wymiany danych między węzłami również stosuje się protokół Wireguard. W przeciwieństwie do Tailscale i Nebula, w Innernet zastosowano inną system podziału dostępu, oparty na nie na ACL z przypisanymi tagami do poszczególnych węzłów, lecz na podziałach podsieci i wydzielaniu różnych zakresów adresów IP, jak w zwykłych sieciach internetowych. Co więcej, zamiast języka Go w Innernet stosuje się język Rust. Trzy dni temu opublikowano aktualizację Innernet 1.5 z lepszym wsparciem dla omijania NAT. Istnieje również projekt Netmaker, który pozwala łączyć sieci o różnej topologii za pomocą Wireguard, ale jego kod dostarczany jest na licencji SSPL (Server Side Public License), która nie jest otwarta z powodu obecności dyskryminujących wymagań.

Tailscale jest dystrybuowany w modelu freemium, co oznacza możliwość korzystania z niego bezpłatnie dla osób fizycznych oraz płatny dostęp dla przedsiębiorstw i zespołów. Klienty Tailscale, z wyjątkiem graficznych aplikacji dla Windows i macOS, rozwijane są jako projekty open source na licencji BSD. Oprogramowanie serwera po stronie Tailscale, które zapewnia autoryzację podczas łączenia nowych klientów, koordynuje zarządzanie kluczami i organizuje interakcję między węzłami, jest własnościowe. Projekt Headscale eliminuje tę niedogodność, oferując niezależną otwartą implementację komponentów serwera Tailscale.

Projekt Headscale rozwija otwarty serwer dla rozproszonej sieci VPN Tailscale

Headscale przejmuje funkcje wymiany otwartych kluczy węzłów, a także wykonuje operacje przypisywania adresów IP i dystrybucji tablic routingu między węzłami. W aktualnej wersji Headscale zrealizowane są wszystkie kluczowe funkcje serwera sterującego, z wyjątkiem wsparcia dla MagicDNS i Smart DNS. W szczególności wspierane są funkcje rejestracji węzłów (w tym przez web), adaptacji sieci do dodawania lub usuwania węzłów, podziału podsieci przy pomocy przestrzeni nazw (jedna sieć VPN może być tworzona dla kilku użytkowników), organizacji dostępu węzłów do podsieci w różnych przestrzeniach nazw, zarządzania routowaniem (w tym przypisanie węzłów wyjściowych do komunikacji ze światem zewnętrznym), podziału dostępu za pomocą ACL oraz działania usługi DNS.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster