Headscale Project desarrolla un servidor abierto para la red VPN distribuida de Tailscale

El proyecto Headscale está desarrollando una implementación abierta del componente de servidor de la red VPN Tailscale, que permite crear redes VPN similares a Tailscale en tus propias instalaciones, sin estar atado a servicios de terceros. El código de Headscale está escrito en Go y distribuido bajo la licencia BSD. El proyecto está siendo desarrollado por Juan Font de la Agencia Espacial Europea.

Tailscale le permite combinar una cantidad arbitraria de hosts dispersos geográficamente en una red, construida como una red de malla, en la que cada nodo interactúa con otros nodos directamente (P2P) o a través de nodos vecinos, sin transmitir tráfico a través de servidores VPN externos centralizados. proveedor. Se admite el control de ruta y acceso basado en ACL. Para establecer canales de comunicación cuando se utilizan traductores de direcciones (NAT), se brinda soporte para los mecanismos STUN, ICE y DERP (análogo a TURN, pero basado en HTTPS). Si el canal de comunicación entre ciertos nodos está bloqueado, la red puede reconstruir el enrutamiento para dirigir el tráfico a través de otros nodos.

Headscale Project desarrolla un servidor abierto para la red VPN distribuida de Tailscale

Tailscale se diferencia del proyecto Nebula, también destinado a crear redes VPN distribuidas con enrutamiento en malla, al utilizar el protocolo Wireguard para organizar la transferencia de datos entre nodos, mientras que Nebula utiliza los desarrollos del proyecto Tinc, que utiliza el algoritmo AES-256 para cifrar paquetes. -GSM (Wireguard utiliza el cifrado ChaCha20, que en las pruebas demuestra un mayor rendimiento y capacidad de respuesta).

Por separado se está desarrollando otro proyecto similar: Innernet, en el que también se utiliza el protocolo Wireguard para el intercambio de datos entre nodos. A diferencia de Tailscale y Nebula, Innernet utiliza un sistema de separación de acceso diferente, que no se basa en ACL con etiquetas vinculadas a nodos individuales, sino en la separación de subredes y la asignación de diferentes rangos de direcciones IP, como en las redes de Internet normales. Además, en lugar del lenguaje Go, Innernet utiliza el lenguaje Rust. Hace tres días, se publicó la actualización Innernet 1.5 con soporte transversal NAT mejorado. También existe un proyecto Netmaker que permite combinar redes con diferentes topologías usando Wireguard, pero su código se suministra bajo SSPL (Server Side Public License), que no está abierto debido a la presencia de requisitos discriminatorios.

Tailscale se distribuye mediante un modelo freemium, lo que significa uso gratuito para individuos y acceso pago para empresas y equipos. Los componentes del cliente Tailscale, a excepción de las aplicaciones gráficas para Windows y macOS, se desarrollan como proyectos abiertos bajo la licencia BSD. El software del servidor que se ejecuta en el lado de Tailscale es propietario y proporciona autenticación al conectar nuevos clientes, coordina la administración de claves y organiza la comunicación entre nodos. El proyecto Headscale aborda esta deficiencia y ofrece una implementación abierta e independiente de los componentes backend de Tailscale.

Headscale Project desarrolla un servidor abierto para la red VPN distribuida de Tailscale

Headscale asume las funciones de intercambiar claves públicas de nodos y también realiza las operaciones de asignación de direcciones IP y distribución de tablas de enrutamiento entre nodos. En su forma actual, Headscale implementa todas las capacidades básicas del servidor de administración, con la excepción de la compatibilidad con MagicDNS y Smart DNS. En particular, las funciones de registrar nodos (incluso a través de la web), adaptar la red para agregar o eliminar nodos, separar subredes mediante espacios de nombres (se puede crear una red VPN para varios usuarios), organizar el acceso compartido de nodos a subredes en diferentes espacios de nombres , control de enrutamiento (incluida la asignación de nodos de salida para acceder al mundo exterior), separación de acceso a través de ACL y operación del servicio DNS.

Fuente: opennet.ru

Añadir un comentario