Projeto Headscale desenvolve servidor aberto para rede VPN distribuída da Tailscale

O projeto Headscale está desenvolvendo uma implementação aberta do componente de servidor da rede Tailscale VPN, que permite criar redes VPN semelhantes ao Tailscale em suas próprias instalações, sem estar vinculado a serviços de terceiros. O código do Headscale é escrito em Go e licenciado sob a licença BSD. O projeto está sendo desenvolvido por Juan Font, da Agência Espacial Europeia.

Tailscale permite combinar um número arbitrário de hosts geograficamente dispersos em uma rede, construída como uma rede mesh, na qual cada nó interage com outros nós diretamente (P2P) ou através de nós vizinhos, sem transmitir tráfego através de servidores VPN externos centralizados fornecedor. Acesso baseado em ACL e controle de rota são suportados. Para estabelecer canais de comunicação ao utilizar tradutores de endereços (NAT), é fornecido suporte aos mecanismos STUN, ICE e DERP (análogo ao TURN, mas baseado em HTTPS). Se o canal de comunicação entre determinados nós estiver bloqueado, a rede poderá reconstruir o roteamento para direcionar o tráfego através de outros nós.

Projeto Headscale desenvolve servidor aberto para rede VPN distribuída da Tailscale

Tailscale difere do projeto Nebula, também destinado à criação de redes VPN distribuídas com roteamento mesh, por utilizar o protocolo Wireguard para organizar a transferência de dados entre nós, enquanto Nebula utiliza os desenvolvimentos do projeto Tinc, que utiliza o algoritmo AES-256 para criptografar pacotes -GSM (Wireguard usa a cifra ChaCha20, que em testes demonstra maior rendimento e capacidade de resposta).

Outro projeto semelhante está sendo desenvolvido separadamente - Innernet, no qual o protocolo Wireguard também é utilizado para troca de dados entre nós. Ao contrário do Tailscale e do Nebula, o Innernet usa um sistema de separação de acesso diferente, baseado não em ACLs com tags vinculadas a nós individuais, mas na separação de sub-redes e na alocação de diferentes intervalos de endereços IP, como nas redes regulares da Internet. Além disso, em vez da linguagem Go, a Innernet usa a linguagem Rust. Há três dias, a atualização do Innernet 1.5 foi publicada com suporte aprimorado ao NAT traversal. Existe também um projeto Netmaker que permite combinar redes com diferentes topologias utilizando Wireguard, mas seu código é fornecido sob SSPL (Server Side Public License), que não é aberto devido à presença de requisitos discriminatórios.

Tailscale é distribuído em um modelo freemium, ou seja, uso gratuito para indivíduos e acesso pago para empresas e equipes. Os componentes do cliente Tailscale, com exceção dos aplicativos gráficos para Windows e macOS, são desenvolvidos como projetos abertos sob a licença BSD. O software de servidor executado no lado do Tailscale é proprietário, fornecendo autenticação ao conectar novos clientes, coordenando o gerenciamento de chaves e organizando a comunicação entre os nós. O projeto Headscale aborda essa deficiência e oferece uma implementação independente e aberta de componentes de backend Tailscale.

Projeto Headscale desenvolve servidor aberto para rede VPN distribuída da Tailscale

Headscale assume as funções de troca de chaves públicas dos nós, e também realiza as operações de atribuição de endereços IP e distribuição de tabelas de roteamento entre os nós. Na sua forma atual, o Headscale implementa todos os recursos básicos do servidor de gerenciamento, com exceção do suporte para MagicDNS e Smart DNS. Em particular, as funções de registrar nós (inclusive via web), adaptar a rede para adicionar ou remover nós, separar sub-redes usando namespaces (uma rede VPN pode ser criada para vários usuários), organizar o acesso compartilhado de nós a sub-redes em diferentes namespaces , controle de roteamento (incluindo atribuição de nós de saída para acessar o mundo externo), separação de acesso por meio de ACLs e operação de serviço DNS.

Fonte: opennet.ru

Adicionar um comentário