Twee locaties, één tunnel. Vanaf het hoofdkantoor kun je bij de server op het filiaal. Vanaf het filiaal kom je niet bij het hoofdkantoor. Of het werkt wel, maar pas nadat iemand aan de andere kant iets heeft gedaan, en na tien minuten stilte is het weer weg.
Een tunnel is symmetrisch, verkeer erover is dat niet. Eén ontbrekende route, één te korte lijst met toegestane adressen of één regel die nieuw verkeer tegenhoudt, en je krijgt precies dit beeld. Gaat er in beide richtingen niets doorheen, lees dan VPN verbindt, maar er gaat niets doorheen.
De snelle controles, in deze volgorde
- Vergelijk beide kanten. Doe elke controle hieronder op allebei de routers en leg de uitkomsten naast elkaar. De kant waar iets ontbreekt is de kant die stuk is, en dat is meestal niet de kant waar je zit.
- Kent de peer het netwerk van de ander?
/interface wireguard peers print detail. Goed antwoord: bijallowed-addressstaat zowel het tunneladres van de peer als het netwerk achter hem. Ontbreekt dat netwerk aan één kant, dan gooit WireGuard het verkeer daar weg. - Bestaat de route?
/ip route print. Goed antwoord: aan beide kanten een route naar het netwerk van de ander, met de tunnelinterface als gateway, en actief. - Test met het juiste bronadres.
/ping 192.168.2.10 src-address=192.168.1.1. Zondersrc-addressgebruikt de router zijn eigen tunneladres, en dan test je iets anders dan wat je gebruikers doen. - Wordt er iets gedropt?
/ip firewall filter print statsop de kant waar het verkeer aankomt, terwijl je vanaf de andere kant pingt. Goed antwoord: geen drop-regel met een teller die meebeweegt. - Blijft de tunnel wakker?
/interface wireguard peers printen kijk naarlast-handshake. Wordt die alleen vers als jij begint, dan valt de tunnel terug in slaap en is keepalive het antwoord.
De gewone oorzaken
- De netwerken achter de peer staan maar aan één kant ingevuld. Verreweg de meest voorkomende. Op de peer moet zowel het tunneladres als elk netwerk achter de peer staan, aan beide kanten. De tool maakt daar ook meteen de routes bij.
- Geen keepalive aan de kant achter NAT. Zit één locatie achter een modem dat NAT doet, dan houdt alleen regelmatig verkeer het gaatje open. Zonder keepalive werkt de tunnel pas nadat die kant zelf iets stuurt, en valt hij daarna weer stil.
- Dezelfde adresreeks aan beide kanten. Is thuis en kantoor allebei 192.168.1.0/24, dan botsen de routes en kiest elke router zijn eigen netwerk. Dit ziet er vaak uit als "één kant werkt", omdat aan die kant toevallig minder overlap is.
- Een geïsoleerd VLAN aan één kant. Isolatie dropt nieuw verkeer dat niet naar WAN gaat. Verkeer van dat VLAN naar de tunnel gaat dus niet weg, terwijl verkeer van de andere kant naar dat VLAN wel binnenkomt. Precies één richting.
- De firewall van het apparaat zelf. Een server die alleen zijn eigen subnet vertrouwt, antwoordt wel op een verbinding die hij zelf opzette en niet op een nieuwe van buiten.
- "Alleen beheer-VLAN" aan één kant. Dan kun je de router aan die kant niet meer pingen terwijl het verkeer erdoorheen wel gewoon werkt.
Wat de configurator hiervan weet
De botsende adresreeksen worden gevangen. Teken je op het netwerkbord een gerouteerde tunnel tussen twee routers en gebruiken beide kanten hetzelfde netwerk, dan zegt de tool welk netwerk dat is: de routes over de tunnel botsen. Zet de routers in locaties met een eigen adresreeks. Hetzelfde geldt voor twee locaties met een eigen router die op dezelfde subnetten uitkomen, ook zonder tunnel: dan kunnen ze later niet via een VPN met elkaar praten.
Voor een site-to-site peer vult de tool de toegestane adressen en de routes samen in: het tunneladres van de peer, plus elk netwerk dat je bij Netwerken achter de peer opgeeft, en per netwerk een route via de tunnelinterface. Vul je dat veld aan één kant niet in, dan is dat de kant die de andere niet kan bereiken.
Een tunnel naar een apparaat dat niet routeert levert een waarschuwing op: een gerouteerde tunnel brengt daar niets. Staat BGP aan zonder AS-nummer, dan is dat een fout. En bij de tunnelsoorten die geen naam als bestemming accepteren, zegt de tool dat er een IP-adres hoort te staan.
Wat de tool niet controleert: of keepalive hoog genoeg staat voor de NAT aan de andere kant, en of de firewall van een server binnen het andere subnet vertrouwt. Het veld Keepalive staat per peer standaard op 25 seconden, en dat is voor bijna elke NAT genoeg.
Als het niet aan je router ligt
- Het modem aan de andere kant. Een locatie achter dubbele NAT kan wel bellen en niet gebeld worden. Zet aan die kant keepalive aan en laat die kant de tunnel opzetten.
- Een firewall van de klant ertussen. Op een kantoor van een ander staat soms een apparaat dat je niet beheert.
- De server zelf. Test eerst de router aan de overkant, dan pas het apparaat erachter.
Verder lezen: Tunnels tussen locaties, Meerdere apparaten in één site en Voorbeeld: twee locaties.