Проект Headscale розвиває відкритий сервер для розподіленої мережі VPN Tailscale

Проект Headscale розвиває відкриту реалізацію серверного компонента VPN-мережі Tailscale, що дозволяє створювати схожі на Tailscale VPN-мережі на своїх потужностях, не прив'язуючись до сторонніх сервісів. Код Headscale написаний мовою Go та поширюється під ліцензією BSD. Проект розвиває Хуан Фонт Алонсо (Juan Font) із Європейського космічного агентства.

Tailscale дозволяє об'єднати довільне число територіально рознесених хостів в одну мережу, побудовану на образі mesh-мережі, в якій кожен вузол взаємодіє з іншими вузлами безпосередньо (P2P) або через сусідні вузли, без передачі трафіку через централізовані зовнішні сервери VPN-провайдера. Підтримується керування доступом та маршрутами на основі ACL. Для встановлення каналів зв'язку в умовах застосування трансляторів адрес (NAT) надається підтримка механізмів STUN, ICE та DERP (аналог TURN, але на базі HTTPS). У разі блокування каналу зв'язку між певними вузлами, мережа може перебудовувати маршрутизацію для направлення трафіку через інші вузли.

Проект Headscale розвиває відкритий сервер для розподіленої мережі VPN Tailscale

Від проекту Nebula, також призначеного для створення розподілених VPN-мереж з mesh-маршрутизацією, Tailscale відрізняється використанням протоколу 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 розвиває відкритий сервер для розподіленої мережі VPN Tailscale

Headscale бере на себе функції обміну відкритими ключами вузлів, а також виконує операції призначення IP-адрес та поширення таблиць маршрутизації між вузлами. У поточному вигляді в Headscale реалізовані всі основні можливості сервера, що управляє, за винятком підтримки MagicDNS і Smart DNS. Зокрема, підтримуються функції реєстрації вузлів (у тому числі через web), адаптації мережі до додавання або видалення вузлів, розділення підмереж за допомогою просторів імен (одна VPN-мережа може бути створена для декількох користувачів), організації загального доступу вузлів до підмереж у різних просторах імен, управління маршрутизацією (у тому числі призначення вихідних вузлів для звернення до зовнішнього світу), поділу доступу через ACL та роботи DNS.

Джерело: opennet.ru

Додати коментар або відгук