Het Headscale-project ontwikkelt een open implementatie van de servercomponent van het VPN-netwerk Tailscale, waarmee je vergelijkbare VPN-netwerken op je eigen infrastructuur kunt opzetten, zonder afhankelijk te zijn van externe diensten. De code van Headscale is geschreven in de programmeertaal Go en wordt verspreid onder een BSD-licentie. Het project wordt geleid door Juan Font van de Europese Ruimtevaartorganisatie.
Tailscale stelt je in staat om een willekeurig aantal geografisch verspreide hosts te verbinden tot ƩƩn netwerk, opgebouwd als een mesh-netwerk, waarin elke node direct communiceert met andere nodes (P2P) of via buren, zonder verkeer via gecentraliseerde externe servers. VPN-provider. Beheer van toegang en routes op basis van ACL wordt ondersteund. Voor het opzetten van communicatietunnels in omgevingen met adresvertalers (NAT) zijn ondersteuning voor STUN-, ICE- en DERP-mechanismen beschikbaar (vergelijkbaar met TURN, maar op basis van HTTPS). In het geval van blokkering van de communicatielijn tussen bepaalde nodes kan het netwerk de routering herschikken om verkeer via andere nodes te leiden.

In tegenstelling tot het Nebula-project, dat ook is ontworpen voor het opzetten van gedistribueerde VPN-netwerken met mesh-routering, onderscheidt Tailscale zich door het gebruik van het Wireguard-protocol voor het organiseren van dataverkeer tussen nodes, terwijl Nebula gebruikmaakt van technologieƫn van het Tinc-project, waarbij het AES-256-GSM-algoritme wordt gebruikt voor pakketversleuteling (in Wireguard wordt de ChaCha20-cijfer gebruikt, wat in tests een hogere doorvoer en responsiviteit toont).
Een ander vergelijkbaar project, Innernet, ontwikkelt zich afzonderlijk, waarbij ook het Wireguard-protocol wordt gebruikt voor gegevensuitwisseling tussen nodes. In tegenstelling tot Tailscale en Nebula maakt Innernet gebruik van een ander systeem voor toegangscontrole, gebaseerd op subnettering en toekenning van verschillende bereiken, in plaats van ACL met tags gekoppeld aan afzonderlijke nodes. IP-adressen, zoals in normale internetnetwerken. Daarnaast wordt in Innernet de programmeertaal Rust gebruikt in plaats van Go. Drie dagen geleden is de Innernet 1.5-update gepubliceerd met verbeterde ondersteuning voor NAT-omzeiling. Er bestaat ook het Netmaker-project, dat het mogelijk maakt om netwerken met verschillende topologieƫn te verbinden via Wireguard, maar de code wordt verspreid onder de SSPL (Server Side Public License), die niet open is vanwege discriminerende voorwaarden.
Tailscale wordt aangeboden volgens een freemium-model, wat betekent dat het gratis kan worden gebruikt door individuen en dat er een betaalde toegang is voor bedrijven en teams. De clientcomponenten van Tailscale, met uitzondering van de grafische applicaties voor Windows en macOS, worden ontwikkeld als open projecten onder de BSD-licentie. De serversoftware aan de kant van Tailscale, die de authenticatie bij het verbinden van nieuwe clients verzorgt, het beheer van sleutels coƶrdineert en de interactie tussen knooppunten organiseert, is propriƫtair. Het Headscale-project lost dit probleem op en biedt een onafhankelijke open implementatie van de servercomponenten van Tailscale.

Headscale neemt de functies van het delen van openbare sleutels tussen knooppunten over, evenals het toewijzen van IP-adressen en het verspreiden van routeringstabellen tussen knooppunten. In de huidige vorm zijn alle belangrijke functies van de beheerserver in Headscale geĆÆmplementeerd, met uitzondering van de ondersteuning voor MagicDNS en Smart DNS. In het bijzonder worden functies ondersteund zoals het registreren van knooppunten (inclusief via het web), het aanpassen van netwerken aan het toevoegen of verwijderen van knooppunten, het splitsen van subnetten met behulp van namespaces (een VPN-netwerk kan voor meerdere gebruikers worden aangemaakt), het organiseren van toegang tot subnetten door knooppunten in verschillende namespaces, het beheren van-routering (inclusief het toewijzen van uitgangsknooppunten voor toegang tot de externe wereld), het splitsen van toegang via ACL's en het functioneren van de DNS-dienst.
Bron: opennet.ru
