Handmatig zijn een of een paar laptops snel te verbinden met een netwerk, maar als je dat voor grotere groepen moet doen en bovendien meerdere locaties moet koppelen, heb je meer nodig dan een simpele router-VPN.
Wat zijn peer-to-peer-VPN’s?
Peer-to-peer-VPN’s verbinden laptops, smartphones en thuiskantoren in een mum van tijd met bijvoorbeeld een bedrijfsnetwerk. Met een browser maak je op een server de configuratie voor nieuwe eindapparaten en zodra die op de apparaten (peers) geïnstalleerd is, voegt de server die als coördinator toe aan een overlay-netwerk.
Zo’n server draait meestal tegen een vergoeding van een paar euro per maand en gebruiker bij de aanbieder van een P2P-VPN, maar sommige kun je ook zelf hosten. In dit artikel belichten we de kenmerken van zes systemen, van Netbird tot ZeroTier, en beschrijven we de sterke en zwakke punten van die peer-to-peer VPN’s. Sinds ons laatste overzicht [1] zijn er nieuwe systemen bijgekomen.
Verschillen met traditionele VPN’s
De centrale coördinator – de control-plane in SDN-jargon (software-defined networks) – is het grootste verschil tussen P2P- en traditionele Virtual Private Networks (VPN’s). De gemeenschappelijke taak van beide: ze graven tunnels door het internet, leiden gegevens daar versleuteld doorheen en verbinden zo peers of zelfs hele lokale netwerken met elkaar. Op de apparaten draait daarvoor een systeemspecifieke app.
Soms kunnen de peers elkaar niet rechtstreeks bereiken, bijvoorbeeld omdat er een hardnekkige NAT-gateway in de weg staat die niet via UDP-hole-punching omzeild kan worden. Dan fungeert de coördinatieserver ook als data-plane of peer-relay, die het verkeer regelt. Een van de zes hier geteste oplossingen werkt alleen zo, maar kan met een extra tool ook in een P2P-modus worden gebruikt.
Helaas krijg je bij de P2P-VPN’s meestal te maken met een vendor-lock-in, waardoor je aan één aanbieder vastzit. Veel aanbieders kiezen weliswaar voor het WireGuard-protocol als mechanisme, maar de implementaties verschillen.
Zo zal de Tailscale-client, ondanks hetzelfde basisprotocol, bijvoorbeeld niet samenwerken met de Netmaker-coördinator, wat te wijten is aan de verschillende control-planes. Een overstap van het ene naar het andere product gaat dan gepaard met veel moeite. Meestal komt een overstap dan neer op het volledig opnieuw opzetten van je eigen VPN.
Zero Trust als uitgangspunt
Een basisuitgangspunt voor P2P-VPN’s is Zero Trust. Ze gaan ervan uit dat het netwerk waarmee ze hun peers coördineren en de gebruiksgegevens doorsturen, onveilig is. Die VPN-klasse werkt dus meestal volgens een van twee bedrijfsmodellen: bij Zero Trust Network Access zorgt een peer als edgerouter in het LAN voor toegang tot de bronnen van het doelnetwerk. De beveiligde verbinding reikt slechts tot aan die router. Het traject daarachter naar de apparaten in het lokale netwerk is potentieel kwetsbaar.
Het iets veiligere model heet Zero Trust Host Access. Daar werkt de P2P-VPN-client op elke host. Daardoor eindigt de versleutelde verbinding op dezelfde computer waarop de doeltoepassing draait. Daartussen zit dan geen afluisterbaar LAN meer, maar nog wel het besturingssysteem.
Exitnodes en posture-checks
Als er in een netwerk permanent een peer draait, kan die vaak ook als exitnode fungeren. Die laatste verschilt van de edgerouter doordat hij het verkeer van peers in andere netwerken op verzoek via zijn internetverbinding de wijde wereld instuurt. Zo zou een peer in Nieuw-Zeeland voor een Nederlandse dienstverlener kunnen lijken op een lokale klant – afgezien van de veel hogere latentie. OpenZiti gaat nog een stap verder, daarover later meer.
Sommige systemen kunnen bovendien hun runtime-omgeving controleren (posture-check), dus er bijvoorbeeld voor zorgen dat er een virusscanner draait, en de dienst weigeren als elementaire beveiligingskenmerken ontbreken. De belangrijkste kenmerken hebben we in de tabel verzameld.
NetBird
NetBird is door zijn Europese oorsprong een buitenbeentje in de testgroep, alle andere zijn afkomstig van Amerikaanse bedrijven. Zelfhosters zullen NetBird weten te waarderen, want de gratis versie is nauwelijks beperkt ten opzichte van de commerciële versie.
Als een deelnemer toegang nodig heeft tot hosts in het LAN van een peer, fungeert die laatste als router. Extra software is niet nodig, alle configuratiestappen voert de beheerder uit op de centrale website. Als een client de rol van Exit Node op zich neemt, stuurt hij het IP-verkeer van andere NetBird-peers via zijn eigen internetverbinding de wereld in. Zo kan het verkeer van clients in onversleutelde hotel-wifi’s worden beschermd.
Om ervoor te zorgen dat alle deelnemers elkaar op naam kunnen bereiken, heeft de NetBird-client een eigen DNS-resolver. Voor andere informatie kan de NetBird-server eigen DNS-zones bijhouden of de verzoeken van zijn clients doorsturen naar interne DNS-resolvers.
De toegangscontrole staat in het begin op open – iedereen kan elkaar bereiken. Met behulp van een restrictief regelwerk kan het NetBird-netwerk worden aangescherpt tot een least privilege-omgeving. Posture-checks verfijnen het beleid, waarbij de checks meer lijken op een uitgebreide firewall en niet het risicopotentieel van een client beoordelen. Zo kun je controleren of er een virusscanner draait, maar niet of die up-to-date is.
Als je je coördinator zelf wilt hosten, krijg je een gratis en robuuste oplossing die qua functies maar weinig verschilt van de commerciële versie. Hoge beschikbaarheid en support zijn alleen tegen betaling beschikbaar.
Interessant genoeg is NetBird momenteel de enige die al rekening houdt met postkwantumcryptografie. Sinds januari 2024 beheerst de clientsoftware het Rosenpass-algoritme voor cryptografisch veilige sleutelonderhandeling, maar die functie staat nog steeds gemarkeerd als experimenteel. Als je je NetBird-netwerk daarmee tegen kwantumcomputers wilt beveiligen, moet je accepteren dat die extra functie momenteel alleen via de commandline kan worden geactiveerd en geen gemengd gebruik met normale peers ondersteunt.
NetBird is geen wondermiddel: de server beheert zelf geen gebruikersaccounts, maar besteedt die taak uit aan een Identity Provider (IdP). Dat is in principe een slimme beslissing, maar als zelfhoster moet je wel zelf een IdP kiezen, installeren en instellen.
Als je die moeite uit de weg wilt gaan, kun je het installatiescript uit NetBirds GitHub-repository voor een Docker-platform gebruiken. Dat haalt naast de andere componenten ook Citadel als IdP aan boord, start de containers en levert een kant-en-klare installatie op.
In de lijst met functies valt op dat IPv6 er nog niet bij zit. NetBird blokkeert IPv6 zelfs om ongewenst gegevensverlies te voorkomen. Het internetprotocol staat in ieder geval op de roadmap. NetBird gebruikt WireGuard als basisprotocol, maar ondersteunt geen WireGuard-clients. Alleen de NetBird-client krijgt informatie over de partners en schakelt automatisch de bijbehorende tunnels in.
Wat schaalbaarheid betreft, helpt de fraaie webinterface niet verder: als één server als coördinator niet meer volstaat, kun je wel extra relays opzetten, maar daarvoor moet je in de weer met de commandline en is handmatig configuratiewerk nodig.

Netmaker
Bij Netmaker heten de VPN-deelnemers Netclients. Ze kunnen, net als bij NetBird, fungeren als gateway naar het internet of als exitnode naar het LAN. Helaas ontbreken in de gratis versie verschillende functies, zoals de smartphone-app. Als zelfhoster kun je de WireGuard-app via een QR-code inrichten.
De Netmaker-server kan makkelijk via een startscript in een ondersteunde Linux-distributie opgezet worden. Het haalt alle benodigde pakketten en Docker-images in het systeem en vraagt alleen naar de DNS-naam waaronder de server later bereikbaar moet zijn. Als je geen eigen DNS-domein hebt, kun je de aangeboden generieke naam accepteren. Die ziet er lelijk uit, maar brengt technisch gezien geen beperkingen met zich mee.
Je configureert de peers zoals gewoonlijk via de browser op de server, maar interessant genoeg draait de Netclient-software alleen in de tekstconsole, zelfs onder Windows. Een GUI, ja zelfs een klein pictogram voor op de taakbalk, is er in de gratis versie niet.
Handig is de centrale updatefunctie: via de website kun je als beheerder alle Netclients updaten zonder je op elk apparaat afzonderlijk te hoeven aanmelden.
Omdat Netmaker elke WireGuard-peer bedient, kan zelfs een Fritzbox-router geïntegreerd worden. Bij die apparaten ontbreekt echter een automatische configuratie, die alleen met de Netclient-software beschikbaar is.
De toegangscontrole tussen de Netmaker-deelnemers beperkt zich in de gratis versie tot ‘mag alles’ en ‘mag niets’. Een gedetailleerder regelsysteem met TCP/UDP-poorten, IP-bereiken en diensten is voorbehouden aan de betaalde versie.
Hetzelfde geldt voor het inloggen via een Identity Provider, eigen relayservers en alles wat in de documentatie is gemarkeerd met Pro.
OpenZiti
OpenZiti wijkt af van de andere in deze test omdat het uitsluitend als peer-relaynetwerk werkt en naast ZTNA en ZTHA een derde bedrijfsmodel biedt: Zero Trust Application Access. Daarbij zit het VPN-eindpunt direct in de doelapplicatie, wat natuurlijk niet werkt zonder wijzigingen in de broncode ervan.
Ontwikkelaars kunnen de Software Development Kit pakken en Zero Trust in hun producten inbouwen, ‘application embedded’ in OpenZiti-taal.
In tegenstelling tot andere systemen stuurt OpenZiti geen DNS-resolvers of IP-routes naar zijn clients, maar informatie over aangeboden diensten. De client-app vangt verzoeken aan die diensten af en stuurt ze door naar het OpenZiti-netwerk. Als je die extra beveiliging niet nodig hebt, kun je OpenZiti ook als normaal P2P-netwerk gebruiken.
Met de zrok-plug-in kun je je favoriete apps of een NAS-opslag delen met andere netwerkdeelnemers.
De strenge beveiligingsaanpak maakt het configureren complex: je moet een veilige set-up samenstellen uit identiteiten, tokens, attributen, diensten, routers en richtlijnen. De authenticatie tussen de deelnemers maakt gebruik van certificaten, wat een Public-Key-Infrastructuur (PKI) vereist. Daarbij helpt de uitstekende documentatie in tekst- en videovorm.
Als je door de bovengemiddelde inspanning voor een werkende opstelling nog niet bent afgeschrikt: het bedrijf NetFoundry, dat achter OpenZiti en zrok zit, doet geheimzinnig over zijn prijsstelling. De zelf gehoste softwarecomponenten zijn gratis, maar de serviceprijzen krijg je alleen op individuele aanvraag te horen.
Tailscale
De aanpak van Tailscale komt bekend voor: WireGuard als basis, eigen apps voor de clients en een centrale coördinatieserver. Die wordt door het bedrijf gehost – zelf beheren is niet de bedoeling – en geeft zijn klanten beheertoegang via het web of een API – het gebruikelijke Software-as-a-Service-model.
Het zo ontstane Tailnet transporteert als overlaynetwerk IPv4- en IPv6-pakketten, maar geen broadcasts en multicasts. Als twee clients elkaar niet direct kunnen bereiken omdat er disjuncte adresblokken of firewalls in de weg staan, schakelt Tailscale een relayserver in.
De community omzeilt het ontbreken van een zelfhostingmogelijkheid met de opensource serverkloon Headscale. In combinatie met de grafische interface Headplane ontstaat een complete Tailscale-kloon. Leuk weetje: een van de twee Headscale-ontwikkelaars werkt bij Tailscale.
De toegangscontrole tussen de Tailnet-deelnemers regelt de beheerder sinds kort met de Visual Editor. Wat voorheen handmatig in JSON-syntaxis werd gemaakt, kan nu ook in de browser worden samengesteld. Het implementeren van beveiligingsrichtlijnen lijkt op het configureren van een firewall, maar met het verschil dat de regels binnen het Tailnet werken.

Als je in je Tailnet toegang zoekt tot een webserver, krijg je mogelijk een certificaatwaarschuwing omdat de interne DNS-naam en het IP-adres in het Tailnet niet overeenkomen met de naam in het certificaat. Daar heeft Tailscale een coole functie voor ontwikkeld: elke deelnemer in het Tailnet kan een gratis certificaat van Let’s Encrypt ophalen, dat is uitgegeven op zijn Tailnet-naam. Daar is geen Certbot voor nodig, maar de cert-optie op de commandlinetool tailscale.
De bestanden voor het certificaat en de privésleutel kunnen vervolgens in de configuratie van de webserver opgenomen worden, waardoor toekomstige browserwaarschuwingen voorkomen worden. MagicDNS zorgt voor de naamomzetting. Daarachter schuilt een door Tailscale geleverde resolver, die net als DynDNS voor Tailnet-clients werkt.
De basisfuncties zijn robuust en maken gebruik van veilige cryptografische algoritmen. Tailscale pakt de dienstherkenning aan met een servicelijst, waarin elke host van een Tailnet zijn diensten kan invoeren. Zo kunnen clients gebruikmaken van diensten zonder dat je IP-adressen of DNS-namen via kopiëren en plakken in applicaties hoeft te zetten.
Twingate
Twingate benadrukt in zijn documentatie dat de dienst niet is ontworpen als VPN, maar als een systeem van transparante proxy’s die gebruikers verbinden met interne diensten. Twingate legt de lat voor beveiliging hoog. Dat blijkt uit de tweefactorauthenticatie, de expliciete toelating van elke deelnemer door de beheerder en toegangsregels die de interne diensten bereikbaar maken.
Helaas maakt die zero-trust-aanpak het configureren ingewikkeld. Clients gebruiken de Twingate-app en maken verbinding met de controller. Toegang tot bronnen in je eigen netwerk verloopt via een connector, die als virtuele Linux-machine in het LAN staat en ook verbinding houdt met de controller.
Pas als de beheerder in het beleid de toegang van de client tot een interne bron toestaat, mag de client verbinding maken via de connector. Bij verbindingsproblemen neemt een relay in een datacenter van Twingate het over en leidt het dataverkeer om. De connector zorgt ook voor de versleutelde naamomzetting via DNS-over-HTTPS.
Twingate richt zich vooral op bedrijven die de voorkeur geven aan gecertificeerde oplossingen en hoge veiligheidseisen stellen. De app kan bijvoorbeeld eisen dat de Windows-firewall actief is, de virusscanner up-to-date is en dat een eventueel geïnstalleerde CrowdStrike-client geen bedreiging heeft gedetecteerd, voordat de Twingate-verbinding tot stand wordt gebracht.
Voor particulieren en kleine bedrijven lijkt Twingate te omslachtig. Je kunt bijvoorbeeld de coördinatieserver niet zelf hosten. Er is geen alternatief zoals bij Tailscale.

ZeroTier
Met meer dan tien jaar ontwikkeling en aanwezigheid op de markt is ZeroTier de meest volwassen aanbieder van peer-to-peer-tunnelverbindingen. Het bedrijf promoot zijn gelijknamige product symbolisch als een wereldwijde ethernetswitch waarop willekeurige eindapparaten kunnen worden aangesloten.
Technisch gezien verbinden de deelnemers zich via VPN met een door de aanbieder beheerde VPN-server, die zoals gebruikelijk indien nodig ook als relay fungeert. Het systeem gebruikt met Salsa20 en Poly1305 vergelijkbare cryptografische algoritmen als WireGuard, maar vormt daaruit een eigen, incompatibel protocol.
Daarop voortbouwend emuleert ZeroTier een Layer-2-overlaynetwerk om de applicaties een bekend protocol te bieden. Voor de deelnemers lijkt het VPN op een ethernetswitch, inclusief broadcast en multicast.
Het gratis abonnement geeft toegang tot de coördinatieserver ZeroTier Central met maximaal tien eindapparaten. De clientsoftware ZeroTier One is beschikbaar voor bijna elk besturingssysteem en ook geschikt voor zwakkere hardware in de IoT-sector.
Als je onafhankelijk van de provider wilt zijn, kun je de netwerkcontroller zelf beheren, maar moet je die wel met API-aanroepen configureren. Dat gaat handig via de browser, maar alleen met externe tools zoals ztncui van Key Networks of ZTNET.
Dat laatste is een opensourceproject dat draait als zelfstandige webconfigurator op Unix-achtige besturingssystemen of als Docker-container, en zelfs het origineel in de schaduw stelt. De web-GUI en de client-app maken een eenvoudige onboarding mogelijk: je hoeft alleen maar een QR-code te scannen met je smartphone. De mobiele apps zijn eenvoudig vormgegeven, maar doen wat ze moeten doen.
Van alle hier geteste P2P-VPN’s heeft ZeroTier de meest veelzijdige toegangscontrole en bepaalt daarmee heel gedetailleerd welke client onder welke voorwaarden met wie mag communiceren. Het configureren gebeurt echter op tekstbasis in een ZeroTier-specifieke taal.
Bij de aangekondigde hoofdversie 2 wil ZeroTier overstappen op AES-versleuteling om te voldoen aan de Amerikaanse veiligheidsnorm FIPS en om zijn potentiële klantenkring uit te breiden met Amerikaanse overheidsinstanties en bedrijven.

Conclusie
Peer-to-peer-netwerken nemen een groot deel van het VPN-configuratiewerk uit je handen en verplaatsen dat naar een centrale coördinatieserver. In vergelijking met traditionele VPN-protocollen maakt dat de overstap naar veilige locatienetwerken of het aansluiten van externe deelnemers een stuk eenvoudiger.
Met het grote aanbod aan aanbieders is er voor elke toepassing wel iets te vinden. ZeroTier biedt een eenvoudige instap en minimale configuratie-inspanning. Tailscale scoort met toegangsbeheer via een grafische editor en bepaalt welke clients welke diensten mogen gebruiken. Twingate hecht waarde aan ‘schone’ clients met posture-checks. Zo komt de verbinding alleen tot stand als de client een actieve firewall heeft of als de smartphone op een actueel besturingssysteem draait.
NetBird en Netmaker lijken in veel opzichten op elkaar. Bij de opbouw van de platforms krijg je de indruk dat de ontwikkelaars hun ideeën gedeeld hebben. Terwijl NetBird de zelfhosters bijna alle functies biedt, verplaatst Netmaker sommige functies naar de commerciële variant.
OpenZiti en Twingate hanteren een zero-trust-aanpak. De hogere veiligheid gaat gepaard met meer configuratiewerk. OpenZiti is best wel complex, maar kan maximale beveiliging tot in de applicatie zelf bieden.
Peer-to-peer-VPN’s – kenmerken en functies

Overzicht van links bij dit artikel
Literatuur
[1] Benjamin Pfister en Alieke van Sommeren, Vier VPN-tools voor shares en remote beheer, c’t 6/2023, p.64
(Markus Stubbig en Noud van Kruysbergen)
Praat mee