Netwerken koppelen op kernniveau met tinc-VPN
Stel je voor dat je letterlijk een netwerkkabel van het ene naar het andere kantoor zou kunnen leggen. Op eigen terrein lukt dat vaak nog, maar ad hoc een kabel over meerdere kilometers leggen stuit al snel op talloze problemen. Het wordt snel kostbaar, je bent afhankelijk van vergunningen en moet wachten tot aannemers tijd hebben.
Fysieke versus virtuele koppelingen
In deze context is een fysieke oplossing niet realistisch, maar gelukkig zijn er digitale of virtuele alternatieven – oplossingen waarmee je vrijwel direct aan de slag kunt: software.
Een softwareoplossing die vaak wordt toegepast is een VPN (Virtual Private Network). Hiermee verbind je netwerken of apparaten via internet veilig met elkaar, alsof er een directe verbinding bestaat. Met een VPN creëer je een virtuele tunnel tussen locaties, te vergelijken met een fysieke tunnel waardoor je ondergronds van het ene treinperron op het andere kunt komen.
Layer 3 versus Layer 2
Normaal werkt een VPN op een netwerklaag waarbij de verschillende locaties elk hun eigen netwerkadresreeks (subnet) hebben. Apparaten kunnen elkaar daardoor niet direct bereiken; de VPN-software maakt de vertaalslagen tussen de verschillende subnets. Dit wordt Layer-3 (L3) genoemd. L3 VPN’s zijn over het algemeen efficiënt, maar soms gaan ze niet ver genoeg.
In bepaalde situaties is het essentieel dat apparaten elkaar direct kunnen bereiken binnen hetzelfde subnet, of dat meerdere subnets eenvoudig en transparant tussen locaties gedeeld kunnen worden – eigenlijk op een manier die lijkt op het fysiek doortrekken van een netwerkkabel, maar dan virtueel.
Met tinc VPN kan zonder extra infrastructuur een Layer-2 (L2) tunnel worden opgezet. Het enige dat je nodig hebt, zijn stabiele (liefst snelle) internetverbindingen en hardware die tinc kan draaien. In plaats van fysieke nodes kun je ook virtuele machines gebruiken als tinc-tunneleindpunten.
Voor complexere omgevingen kan het handig zijn om managed of smart switches in te zetten, zodat virtuele netwerken netjes van elkaar geïsoleerd blijven en segmenten elkaar niet beïnvloeden. Bijvoorbeeld door aparte managementsegmenten te gebruiken en een fysieke koppeling op de interface van de tinc-node op een apart VLAN te plaatsen.
Layer-2 in de praktijk
Kortom: met een L2-VPN, ook wel L2-tunneling genoemd, ga je een stap verder dan L3. Via een UDP- of TCP-tunnel komen apparaten op beide locaties in hetzelfde netwerk te zitten – alsof ze fysiek op dezelfde switch of kabel zijn aangesloten. Het resultaat: servers, hypervisors en andere netwerkapparatuur zien elkaar direct en communiceren alsof ze op dezelfde locatie staan. Zelfs virtuele LAN’s (VLAN’s) kunnen transparant via een L2-tinc-tunnel worden meegetunneld, en ook DHCP (Dynamic Host Configuration Protocol) voor het automatisch toewijzen van IP-adressen werkt probleemloos over de tunnel.
Praktijkvoorbeelden L2-tinc
In de praktijk levert dit verrassend eenvoudige oplossingen op. Bij een klant heb ik een stabiele L2-tunnel opgezet, zodat hypervisors en virtuele servers op verschillende locaties in hetzelfde netwerk samenwerken. Alles communiceert direct, zonder ingewikkelde routing of firewallregels. Voor de klant betekent dit dat technische problemen op de hoofdlocatie snel kunnen worden opgevangen, bijvoorbeeld door gerepliceerde virtuele servers op een bijkantoor op te starten wanneer de fysieke server op de hoofdlocatie volledig uitvalt. Hierdoor hoeven netwerkinstellingen op de gerepliceerde virtuele servers niet opnieuw te worden ingesteld.
Routing blijft natuurlijk wel een aandachtspunt. In dit scenario heb ik voor het bijkantoor een tweede gateway ingericht, die samen met de eerste gateway via CARP een IP-adres deelt. Op deze manier blijft routering mogelijk, zelfs tijdens een netwerkverstoring of bij uitval van internet.
Naast permanente oplossingen kan met tinc ook ad-hoc L2-tunneling worden toegepast. Zo kan op een andere locatie alvast een nieuwe server volledig worden ingericht, zonder dat de hardware fysiek op de klantlocatie aanwezig is. Op dit moment richt ik in ons lab een nieuwe serveromgeving in met virtuele servers die direct met de klantomgeving communiceren – alsof ze er al fysiek staan.
Waarom tinc?
tinc bestaat al meer dan twintig jaar en staat bekend om zijn flexibiliteit en stabiliteit. Het ondersteunt zowel L2- als L3-tunnels, meerdere protocollen (UDP/TCP) en end-to-end encryptie. Dit maakt het een “Zwitsers zakmes” voor VPN-oplossingen: stabiel, veelzijdig en relatief eenvoudig in te zetten.
Moderne alternatieven zoals WireGuard zijn extreem snel en eenvoudig, maar primair ontworpen voor L3-VPN’s. Wil je L2-verbindingen, dan gebruik je vaak GENEVE of VXLAN over een versleutelde L3-tunnel. Dat werkt, maar voegt extra lagen en complexiteit toe.
tinc ondersteunt L2 direct: de tunnel versleutelt verkeer en plaatst apparaten in hetzelfde subnet, zonder extra protocollen. Als UDP niet stabiel is, kan TCP worden gebruikt, wat dankzij tuning zoals BBR congestion control kan worden geoptimaliseerd.
Kortom: tinc combineert flexibiliteit, eenvoud en stabiliteit, terwijl moderne protocollen vaak beperkt zijn tot één laag of meerdere technologieën vereisen. Voor wie apparaten over meerdere locaties direct in hetzelfde netwerk wil laten samenwerken, blijft tinc een krachtige en praktische keuze. Soms vergelijk ik tinc met een tank, maar een betere vergelijking is misschien een goed werkend Zwitsers uurwerk: degelijk, betrouwbaar en precies op elkaar afgestemd.
