Проект Headscale развивает открытый сервер для распределённой VPN-сети Tailscale

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

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

От проекта Nebula, также предназначенного для создания распределённых VPN-сетей c mesh-маршрутизацией, Tailscale отличается использованием протокола Wireguard для организации передачи данных между узлами, в то время как в Nebula используются наработки проекта Tinc, в котором для шифрования пакетов используется алгоритм AES-256-GSM (в Wireguard применяется шифр ChaCha20, который в тестах демонстрирует более высокую пропускную способность и отзывчивость).

Отдельно развивается ещё один похожий проект — Innernet, в котором для обмена данными между узлами также применяется протокол Wireguard. В отличие от Tailscale и Nebula в Innernet применяется иная система разделения доступа, основанная не на ACL с привязкой тегов к отдельным узлам, а на разделении подсетей и выделении разных диапазонов IP-адресов, как в обычных интернет-сетях. Кроме того, вместо языка Go в Innernet применяется язык Rust. Три дня назад опубликовано обновление Innernet 1.5 с улучшенной поддержкой обхода NAT.

Tailscale распространяется с использованием модели Freemium, подразумевающей возможность бесплатного использования для индивидуальных лиц и платный доступ для предприятий и команд. Клиентские компоненты Tailscale, за исключением графических приложений для Windows и macOS, развиваются в форме открытых проектов под лицензией BSD, но работающее на стороне компании Tailscale серверное ПО, обеспечивающее аутентификацию при подключении новых клиентов, координирующее управление ключами и организующее взаимодействие между узлами, является проприетарным. Проект Headscale устраняет этот недостаток и предлагает независимую открытую реализацию серверных компонентов Tailscale.

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

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии