Handleiding

VPN verbindt, maar er gaat niets doorheen

De tunnel staat, de teller loopt aan één kant op, en je komt nergens. Dat is bijna altijd routering.

Je telefoon of laptop zegt dat de VPN verbonden is. Het lampje is groen, de client klaagt niet. Maar je komt niet bij de NAS, je kunt de router niet pingen, en namen worden niet gevonden.

Dit is een ander probleem dan een tunnel die niet tot stand komt. Komt er helemaal geen verbinding, kijk dan bij WireGuard doet geen handshake. Hier staat de verbinding, en gaat het mis met wat er doorheen mag en waar het naartoe moet.

De snelle controles, in deze volgorde

  1. Gaat er verkeer beide kanten op? Bij WireGuard: /interface wireguard peers print. Goed antwoord: rx en tx lopen allebei op. Alleen rx betekent dat je wel binnenkomt maar het antwoord niet terugvindt. Bij L2TP of SSTP: /ppp active print. Bij IKEv2: /ip ipsec active-peers print en /ip ipsec policy print, waar de policy established hoort te zijn.
  2. Heeft de tunnel een adres? /ip address print. Goed antwoord: een adres op de WireGuard-interface, bijvoorbeeld 10.10.10.1/24. Zonder adres is er niets om vanaf te routeren.
  3. Kun je de router in de tunnel bereiken? Ping vanaf de client het tunneladres van de router. Lukt dat wel en het LAN niet, dan is het een kwestie van routes of van de firewall van het apparaat binnen. Lukt het niet, lees dan de volgende stap.
  4. Houdt de input-regel je tegen? /ip firewall filter print stats terwijl je pingt. Goed antwoord: de teller van drop all not coming from LAN staat stil. Loopt die op, dan telt de tunnel niet mee als LAN en mag je niet bij de router zelf, ook niet voor DNS.
  5. Bestaat er een route terug? /ip route print. Goed antwoord: voor een peer met netwerken erachter staat er een route naar dat netwerk via de tunnelinterface.
  6. Komt er iets aan? /tool torch interface=wg-rw laat zien wat er door de tunnel gaat. Niets, terwijl de client zegt dat hij verbonden is, betekent dat de client zijn verkeer ergens anders heen stuurt.

De gewone oorzaken

  • De client stuurt het verkeer niet door de tunnel. In een WireGuard-clientconfiguratie bepaalt AllowedIPs wat er door de tunnel gaat. Staat daar alleen het tunnelnetwerk, dan blijft je kantoornetwerk buiten beeld. De tool schrijft 0.0.0.0/0, ::/0 bij een full tunnel, en anders het tunnelnetwerk plus je LAN.
  • De tunnel telt niet als LAN. De afsluitende input-regel laat alleen verkeer toe dat van de LAN-lijst komt. Staat de WireGuard-interface daar niet in, dan kun je de router niet beheren en niet als DNS-server gebruiken vanaf de VPN.
  • Overlappende netwerken. Zit je thuis op 192.168.88.0/24 en is het kantoor dat ook, dan stuurt je laptop het verkeer naar zijn eigen netwerk en komt het nooit in de tunnel. Dit is de meest onderschatte oorzaak.
  • De firewall van het apparaat binnen. Windows en een NAS vertrouwen vaak alleen hun eigen subnet. Het tunneladres is een ander subnet, dus wordt het geweigerd.
  • Een geïsoleerd VLAN aan de andere kant. Isolatie dropt nieuw verkeer dat niet naar WAN gaat, en de tunnel is niet WAN.
  • MTU. Verbindingen komen tot stand, kleine dingen werken, grote hangen. Zie Websites blijven hangen.

Wat de configurator hiervan weet

Bij elke WireGuard-interface staat de schakelaar Tunnel telt als LAN (beheer/DNS via VPN), standaard aan. Die zet de tunnelinterface in de LAN-lijst, waardoor de input-regel je doorlaat en je de router als DNS-server kunt gebruiken. Zet je hem uit, dan is dat precies het beeld uit stap 4 hierboven.

De firewallregels voor de VPN worden automatisch gemaakt vanuit het onderdeel VPN: een accept op de UDP-poort van elke WireGuard-interface, op 500 en 4500 plus ESP voor IPsec, op 1701 binnen IPsec voor L2TP, en zo verder. Je hoeft die dus niet bij de handmatige lijst te zetten.

Voor elke road-warrior peer schrijft de tool een kant-en-klare clientconfiguratie naast het script, met AllowedIPs, de DNS-server en het endpoint erin. Heb je geen publiek adres of hostnaam ingevuld, dan staat daar een plaatshouder en waarschuwt de tool erover. Ontbreekt een sleutelpaar of een public key, dan zegt de tool dat ook.

Wat de tool niet kan controleren: of het thuisnetwerk van je gebruiker toevallig hetzelfde bereik gebruikt als je kantoor. Voor twee locaties in één site bestaat die controle wel, voor een telefoon in een hotel per definitie niet. Kies daarom een LAN-bereik dat niemand standaard heeft; zie Adressen plannen.

Als het niet aan je router ligt

  • Het netwerk waar de client zit. Gastennetwerken in hotels en bedrijven blokkeren vaak UDP op hoge poorten. Test met mobiele data om dat uit te sluiten.
  • De client heeft twee VPN's. Een altijd-aan VPN van je werkgever wint van de jouwe.
  • Het apparaat dat je wilt bereiken staat uit. Ping eerst de router in de tunnel, dan het apparaat.

Verder lezen: WireGuard, VPN voor toegang op afstand en Firewall en NAT.

Meteen proberen? Open de configurator