Została wydana wersja narzędzi OpenZiti 1.0, która umożliwia integrację aplikacji z rozwiązaniami do rozproszonej komunikacji sieciowej oraz dostępem do usług w izolowanym środowisku sieciowym. OpenZiti pozwala na uruchomienie specyficznej dla opracowywanych aplikacji sieci nakładkowej, działającej na zwykłym internecie i wykorzystującej routing mesh, w którym każdy węzeł sieci łączy się przez sąsiednie węzły. Kod projektu napisany jest w języku Go i jest udostępniany na licencji Apache 2.0. Oferowane są powiązania dla języków C, Go, Python, Swift, Java, Node.js i C# (.NET), a także narzędzia do integracji z aplikacjami na platformie Android.
System OpenZiti został pierwotnie zaprojektowany do budowy sieci zapewniających ochronę i izolację ruchu w warunkach pracy w niezabezpieczonych środowiskach, w których węzły mogą być skompromitowane (architektura z zerowym zaufaniem - Zero Trust). Technologia ta może być stosowana do organizacji łączności z aplikacjami zamiast VPN. Działanie sieci zapewnia proces kontrolera, który zarządza konfiguracją sieci, uwierzytelnianiem i konfiguracją usług, a także węzłów, którym zezwolono na pełnienie roli routerów, tworzących sieć mash i przekazujących przez siebie ruch tranzytowy. Możliwe jest dodawanie usług do równoważenia obciążenia oraz zapewnienia odporności na awarie.

Dostęp do sieci nakładkowej realizowany jest za pomocą specjalnych klientów edge, umożliwiających dostęp zewnętrznej sieci do sieci nakładkowej utworzonej za pomocą OpenZiti. Możliwe jest tworzenie tuneli i proxy, które pozwalają na przesyłanie ruchu z sieci zwykłej do nakładkowej i odwrotnie, aby zewnętrzna sieć mogła komunikować się z aplikacjami działającymi w sieci nakładkowej i uzyskiwać dostęp do istniejących aplikacji, które nie mają wbudowanej obsługi sieci nakładkowej.
Uzyskiwanie dostępu do sieci i dane z serwerów DNS jest możliwe tylko po przejściu obowiązkowej autoryzacji i uwierzytelnienia — bez uprawnień klient nie będzie mógł sprawdzić dostępności usługi i połączyć się z nią. Cały ruch jest chroniony za pomocą mTLS (wzajemne uwierzytelnienie, w którym klient i serwer wzajemnie się uwierzytelniają) oraz szyfrowania end-to-end (ChaCha20-Poly1305), co oznacza, że kompromitacja węzłów sieci nie pozwoli na przeglądanie ruchu aplikacji. Do szyfrowania wykorzystywane są funkcje biblioteki libsodium.
Wśród popularnych aplikacji wykorzystujących OpenZiti można wymienić platformę współdzielenia danych Zrok oraz ekosystem browZer do wdrażania stron w sieci nakładkowej. Oprócz tworzenia rozproszonych aplikacji sieciowych, OpenZiti nadaje się również do budowy prywatnych sieci w celu organizacji dostępu do zamkniętych interfejsów API, stron internetowych lub baz danych, ukrywania w sieci nakładkowej infrastruktury opartej na Kubernetes, a także zdalnego zarządzania zewnętrznymi systemami i urządzeniami bez konfigurowania zapór sieciowych i korzystania z VPN.
W wydaniu OpenZiti 1.0 zapewniono stabilność API dla routerów i kontrolerów (dla klientów stabilność API była gwarantowana i wcześniej). Od tego wydania w API i interfejsie wiersza poleceń będzie wspierana wsteczna zgodność, a w razie potrzeby usunięcia funkcji będzie stosowany proces ich wcześniejszego wprowadzenia do statusu przestarzałego, a faktyczne usunięcie nastąpi tylko przy znacznej zmianie numeru wersji. W nowej wersji przeprowadzono również dodatkowe testy z symulacją różnych awarii komponentów sieci (chaos testing), co pozwala upewnić się w odporności sieci na nieprzewidziane sytuacje i zdolności powrotu do normalnej pracy po wznowieniu działania uszkodzonych komponentów.
Źródło: opennet.ru
