Проектът Headscale разработва отворена реализация на сървърния компонент на Tailscale VPN мрежата, която ви позволява да създавате VPN мрежи, подобни на Tailscale, във вашите собствени съоръжения, без да сте обвързани с услуги на трети страни. Кодът на Headscale е написан на Go и се разпространява под лиценз BSD. Проектът се разработва от Хуан Фонт от Европейската космическа агенция.
Tailscale ви позволява да комбинирате произволен брой географски разпръснати хостове в една мрежа, изградена като мрежова мрежа, в която всеки възел взаимодейства с други възли директно (P2P) или чрез съседни възли, без да предава трафик през централизираните външни сървъри на VPN доставчик. Поддържа се ACL-базиран достъп и управление на маршрута. За установяване на комуникационни канали при използване на преводачи на адреси (NAT) е осигурена поддръжка за механизмите STUN, ICE и DERP (аналогични на TURN, но базирани на HTTPS). Ако комуникационният канал между определени възли е блокиран, мрежата може да възстанови маршрутизирането, за да насочи трафика през други възли.
Tailscale се различава от проекта Nebula, също предназначен за създаване на разпределени VPN мрежи с мрежово маршрутизиране, като използва протокола Wireguard за организиране на трансфер на данни между възли, докато Nebula използва разработките на проекта Tinc, който използва алгоритъма AES-256 за криптиране на пакети -GSM (Wireguard използва шифъра ChaCha20, който при тестове демонстрира по-висока пропускателна способност и отзивчивост).
Отделно се разработва друг подобен проект – Innernet, в който също се използва протоколът Wireguard за обмен на данни между възлите. За разлика от Tailscale и Nebula, Innernet използва различна система за разделяне на достъпа, базирана не на ACL с тагове, свързани с отделни възли, а на разделяне на подмрежи и разпределяне на различни диапазони от IP адреси, както в обикновените интернет мрежи. В допълнение, вместо езика Go, Innernet използва езика Rust. Преди три дни беше публикувана актуализацията на Innernet 1.5 с подобрена поддръжка на NAT преминаване. Има и проект Netmaker, който ви позволява да комбинирате мрежи с различни топологии с помощта на Wireguard, но неговият код се доставя под SSPL (Server Side Public License), който не е отворен поради наличието на дискриминационни изисквания.
Tailscale се разпространява чрез freemium модел, което означава безплатно използване за отделни лица и платен достъп за фирми и екипи. Клиентските компоненти на Tailscale, с изключение на графичните приложения за Windows и macOS, се разработват като отворени проекти под BSD лиценз. Сървърният софтуер, работещ от страна на Tailscale, е патентован, осигурява удостоверяване при свързване на нови клиенти, координиране на управлението на ключове и организиране на комуникацията между възлите. Проектът Headscale адресира този недостатък и предлага независимо, отворено внедряване на бекенд компоненти на Tailscale.
Headscale поема функциите за обмен на публични ключове на възли и също така изпълнява операциите по присвояване на IP адреси и разпространение на таблици за маршрутизиране между възлите. В сегашната си форма Headscale изпълнява всички основни възможности на сървъра за управление, с изключение на поддръжката за MagicDNS и Smart DNS. По-специално, функциите за регистриране на възли (включително чрез уеб), адаптиране на мрежата за добавяне или премахване на възли, разделяне на подмрежи с помощта на пространства от имена (една VPN мрежа може да бъде създадена за няколко потребители), организиране на споделен достъп на възли до подмрежи в различни пространства от имена , контрол на маршрутизирането (включително присвояване на изходни възли за достъп до външния свят), разделяне на достъпа чрез ACL и работа на DNS услуга.
Източник: opennet.ru