Представен е новият инструментариум OpenZiti 1.0, който позволява интегрирането на средства за разпределена мрежова комуникация и достъп до услуги в изолирана мрежова среда. OpenZiti предлага възможност за разгръщане на специфична за разработваните приложения оверлейна мрежа, функционираща върху обикновен интернет и използваща mesh маршрутизация, при която всяка точка от мрежата е свързана със съседни точки. Кодът на проекта е написан на езика Go и се разпространява под лиценз Apache 2.0. Предоставят се обвивки за езиците C, Go, Python, Swift, Java, Node.js и C# (.NET), както и инструментариум за интеграция с приложения за платформата Android.
Системата OpenZiti е създадена за изграждане на мрежи, които осигуряват защита и изолация на трафика в условия на работа в незашищени среди, където възлите могат да бъдат компрометирани (архитектура с нулево доверие – Zero Trust). Технологията може да се използва за организиране на комуникация с приложения вместо VPN. Работата на мрежата се осигурява чрез използването на контролер, управляващ конфигурацията на мрежата, автентикацията и настройките на услугите, както и на възлите, които имат право да действат като маршрутизатори, образуващи mash мрежа и изпълняващи транзитно предаване на трафик. Възможно е добавяне на услуги за балансиране на натоварването и осигуряване на устойчивост на неизправности.

Достъпът до оверлейната мрежа се реализира чрез специални edge клиенти, които позволяват достъп от външната мрежа до оверлейната мрежа, изградена с помощью OpenZiti. Възможно е създаването на тунели и прокси, позволяващи пробиване на трафик от обикновената мрежа в оверлейната и обратно, за да се осъществи взаимодействие с приложения, работещи в оверлейната мрежа, и да се получи достъп до съществуващи приложения, в които не е вградена поддръжка за оверлейната мрежа.
Достъп до мрежата и получаване на данни от сървъри DNS е възможно само след преминаване на задължителна авторизация и аутентификация - без наличието на разрешения клиентът няма да може да определи наличието на услугата и да се свърже с нея. Целият трафик се защитава чрез mTLS (взаимна аутентификация, при която клиентът и сървърът се аутентифицират един друг) и крайно криптиране (ChaCha20-Poly1305), т.е. компрометирането на мрежовите възли не позволява наблюдаване на трафика на приложенията. За криптиране се използват функции на библиотеката libsodium.
Сред популярните приложения, използващи OpenZiti, може да се отбележи платформата за споделяне на данни Zrok и екосистемата browZer за разгръщане на сайтове в оверлейна мрежа. Освен за създаване на разпределени мрежови приложения, OpenZiti е подходящ и за изграждане на частни мрежи за осигуряване на достъп до затворени API, сайтове или БД, скриване на инфраструктура в оверлейната мрежа на базата на Kubernetes, а също и дистанционно управление на външни системи и устройства без настройване на междудоменни стени и използване на VPN.
С версията OpenZiti 1.0 е осигурена стабилност на API за маршрутизаторите и контролерите (за клиентите стабилността на API беше гарантирана и преди). От тази версия нататък в API и интерфейса на командния ред ще се поддържа обратно съвместимост, а при необходимост от премахване на възможности ще се прилага процес на предварително прехвърляне тях в категорията остарели и фактическото им премахване само при значителна смяна на номера на версията. В новата версия също е проведено допълнително тестване с симулация на различни повреди на мрежовите компоненти (chaos testing), което позволява да се уверим в устойчивостта на мрежата при възникване на извънредни ситуации и способността да се върне към нормална работа след възстановяване на повредените компоненти.
Източник: opennet.ru
