Windows 11 VPN Verbindingsfouten Oplossen: L2TP, IKEv2 en Foutcodes 789/809/812 (2026)
Windows 11 VPN-verbindingen breken vaak na 24H2 en 25H2 updates. Deze runbook lost L2TP fout 789, IKEv2 fout 809 en authenticatiefout 812 stap-voor-stap op met PowerShell-scripts.
Wanneer een Windows 11 VPN-verbinding stopt met werken na een 24H2 of 25H2 cumulatieve update, komt de oorzaak in 90% van de tickets die op mijn bureau belanden neer op één van drie dingen: een NAT-traversal registerwaarde die de update heeft teruggezet, de IPsec Policy Agent service die op handmatig start staat, of een MS-CHAP v2 authenticatie-instelling die is verdwenen uit het VPN-profiel. Deze gids is een runbook. Je loopt de stappen in volgorde af, controleert de verwachte uitvoer, en negen van de tien keer is de tunnel binnen tien minuten weer online. Foutcodes 789, 809 en 812 horen bij de meest voorkomende scenario's en krijgen elk hun eigen diagnostisch pad.
Fout 789 (L2TP security layer) wordt vrijwel altijd opgelost door de AssumeUDPEncapsulationContextOnSendRule DWORD op waarde 2 in het register. Windows 11 24H2 zet deze in sommige builds terug op 0.
Fout 809 (server reageert niet) betekent bijna altijd een geblokkeerde UDP-poort 500 of 4500, of NAT-T dat niet werkt op de router.
Fout 812 (authenticatie mislukt) verwijst naar een MS-CHAP v2 of EAP mismatch tussen client en NPS/RADIUS-server.
De IPsec Policy Agent en Remote Access Connection Manager (RasMan) services moeten beide draaien. Controleer de starttypes met Get-Service.
Voor Always On VPN implementaties: gebruik Get-VpnConnection en Get-EventLog -LogName Application -Source RasClient om de exacte faalfase te isoleren.
Werk je met Windows 11 24H2 en gebruik je een third-party client (Cisco AnyConnect, GlobalProtect, FortiClient)? Reïnstalleer eerst het TAP-stuurprogramma via Apparaatbeheer voordat je in het register duikt.
Waarom VPN plotseling faalt na een Windows 11 update
Als een VPN-tunnel maandenlang stabiel heeft gedraaid en dan van de ene op de andere ochtend weigert, is de tijdlijn zelf de belangrijkste diagnostische aanwijzing. Vraag de gebruiker altijd eerst: "Welke Windows update is het laatst geïnstalleerd?" Ik heb geleerd om die vraag te stellen voordat ik überhaupt naar het VPN-profiel kijk, want sinds oktober 2024 heeft elke grote 24H2 en 25H2 cumulatieve update wel iets aan de RRAS-stack geraakt.
Windows onthoudt VPN-instellingen op twee plekken: in het register onder HKLM\SYSTEM\CurrentControlSet\Services en in het gebruikersprofiel via rasphone.pbk. Cumulatieve updates schrijven regelmatig registerwaarden onder PolicyAgent, RasMan en Tcpip terug naar Microsoft-defaults. Dat is meestal geen probleem, behalve voor L2TP achter NAT, waar de NAT-traversal waarde expliciet op 2 gezet moet zijn om te werken. Zonder die waarde krijg je fout 789, en de gebruiker zweert dat "er niets veranderd is".
Voordat we in de fixes duiken: de foutcode is de kaart. Als je de betekenis van de code kent, weet je meteen welke laag van de VPN-stack te controleren en kun je 80% van de andere fixes overslaan.
Foutcode
Betekenis
Laag
Eerste stap
789
L2TP security layer processing error
IPsec / NAT-T
Register: AssumeUDPEncapsulationContextOnSendRule
809
Netwerkverbinding met VPN-server kan niet worden opgezet
Netwerk / Firewall
Poorten UDP 500/4500 controleren
812
Authenticatie geweigerd door VPN-server
Authenticatie
MS-CHAP v2 / EAP methode matchen
813
Duplicate VPN-verbinding actief
Sessie
RasMan service herstarten
691
Ongeldige gebruikersnaam of wachtwoord
Credentials
Wachtwoord verlopen? AD Account gecontroleerd?
619
Poort was verbroken
Sessie / MTU
MTU verlagen op interface, sessie forceren
De verwarrende: fout 691 en fout 812 lijken beide op inloggegevens, maar 691 komt van de client-side (Windows heeft de credentials afgewezen na een pre-check), terwijl 812 van de server komt (de authenticatiemethode zelf klopt niet). Als je te maken hebt met een vergrendeld Active Directory account, zie je vaak 691 in de client-log en Event ID 4740 op de domain controller. Twee kanten van dezelfde medaille, eigenlijk.
Hoe los je L2TP fout 789 op in Windows 11?
Fout 789 is de klassieker. De volledige tekst luidt: "The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remote computer." Dat klinkt gecompliceerd, maar de oorzaak is bijna altijd één van deze drie: NAT-traversal ontbreekt in het register, de IPsec Policy Agent draait niet, of de pre-shared key op de client komt niet overeen met de server.
Stap 1: Register-fix voor NAT-Traversal
Dit is de fix die je 80% van de tijd nodig hebt. Open een verhoogde PowerShell (rechtsklik op Start, Terminal (Administrator)):
De waarde 2 betekent: "Client en server kunnen beide achter NAT staan". Dat is de meest voorkomende situatie in een thuiskantoor of hotel-wifi. Waarde 1 is alleen server-achter-NAT, en 0 schakelt NAT-T volledig uit. Dat is de default die Microsoft in sommige 24H2 builds terugzet.
Stap 2: IPsec Policy Agent controleren
Als de register-fix niet helpt, controleer of de IPsec service überhaupt draait:
Als het probleem zich alleen bij bepaalde gebruikers voordoet en niet bij anderen, is de pre-shared key of het certificaat op die client waarschijnlijk verkeerd. Open ncpa.cpl, rechtsklik op de VPN-adapter, Eigenschappen, tabblad Beveiliging, knop Geavanceerde instellingen. Vergelijk de pre-shared key letter-voor-letter met wat op de VPN-server staat. Ik heb ooit een halve dag verspild aan een key die eindigde op een spatie (die je in het invoerveld niet ziet).
Hoe los je IKEv2 fout 809 op na een 24H2 update?
Fout 809 betekent dat de VPN-server niet antwoordt binnen de timeout. Dit is puur een netwerk-laag probleem. Het IPsec/IKEv2 handshake begint niet eens, dus register-tweaks voor certificaten of authenticatie zijn zinloos totdat je basisconnectiviteit hebt.
Als TcpTestSucceeded False is, wordt de poort geblokkeerd door de router, de ISP, of Windows Defender Firewall. Let op: Test-NetConnection -Port 500 test technisch gezien TCP 500, terwijl IKEv2 UDP 500 gebruikt. Voor echte UDP-tests grijp je naar een tool als PortQry van Microsoft.
Stap 2: IKEv2 fragmentatie register-fix
Voor Always On VPN met certificaten worden pakketten vaak groter dan de standaard MTU. Windows 10 1803+ ondersteunt IKEv2 fragmentatie, maar in bepaalde 24H2 en 25H2 builds is dit uitgezet. Zet het terug aan:
Deel een mobiele hotspot en probeer opnieuw. Werkt de VPN via de hotspot maar niet via het thuisnetwerk van de gebruiker, dan is het probleem het thuisnetwerk. Vaak is dat een consumer-router die IPsec passthrough niet aan heeft staan (Sky Broadband, sommige oudere Ziggo modems, en Zyxel routers zijn recidivisten).
IPsec Policy Agent en RasMan controleren met PowerShell
De VPN-stack in Windows leunt op vier services die alle vier moeten draaien. Stopt er één, dan valt de tunnel om. Dit script controleert de complete stack in één keer en meldt afwijkingen:
# VPN Service Health Check
$vpnServices = @{
'PolicyAgent' = 'Automatic'
'RasMan' = 'Automatic'
'IKEEXT' = 'Automatic'
'BFE' = 'Automatic' # Base Filtering Engine
'RemoteAccess' = 'Disabled' # alleen server-side, hoort uit op client
}
foreach ($svc in $vpnServices.GetEnumerator()) {
$service = Get-Service -Name $svc.Key -ErrorAction SilentlyContinue
if (-not $service) {
Write-Warning "$($svc.Key) ontbreekt op deze machine"
continue
}
$expected = $svc.Value
$actualType = (Get-Service -Name $svc.Key).StartType
$actualStatus = $service.Status
if ($actualType -ne $expected) {
Write-Warning "$($svc.Key): starttype is $actualType, verwacht $expected"
}
if ($expected -eq 'Automatic' -and $actualStatus -ne 'Running') {
Write-Warning "$($svc.Key): status is $actualStatus, verwacht Running"
}
}
# Snelle event log dump: laatste 10 VPN-fouten
Get-WinEvent -LogName Application -MaxEvents 100 |
Where-Object { $_.ProviderName -eq 'RasClient' -and $_.LevelDisplayName -eq 'Error' } |
Select-Object -First 10 TimeCreated, Id, Message |
Format-List
Draai dit als eerste diagnostische stap voordat je aan register-hacks begint. De output vertelt je binnen 5 seconden of het een service-probleem is of iets anders.
Firewall-poorten voor VPN openzetten (UDP 500/4500)
Elk VPN-protocol heeft eigen poorten. Als een cumulatieve update de Windows Defender Firewall regels heeft aangepast (het gebeurt vaker dan Microsoft toegeeft), staan deze poorten mogelijk dicht. Hier is de complete matrix:
Protocol
Poorten
Extra
L2TP/IPsec
UDP 500, UDP 4500, UDP 1701
IP-protocol 50 (ESP)
IKEv2
UDP 500, UDP 4500
IP-protocol 50 (ESP)
SSTP
TCP 443
Certificaat vereist
PPTP
TCP 1723
IP-protocol 47 (GRE), gedeprecateerd, niet gebruiken
OpenVPN
UDP 1194 (default)
Configureerbaar
WireGuard
UDP 51820 (default)
Configureerbaar
Regels aanmaken via PowerShell (uitvoerbaar op de client én, indien nodig, op tussenliggende Windows Server firewalls):
Fout 812 wijst op een authenticatie-mismatch. De VPN-server verwacht bijvoorbeeld EAP-TLS (met certificaat) terwijl de client MS-CHAP v2 (gebruikersnaam/wachtwoord) aanbiedt. Windows 11 24H2 heeft in enkele builds MS-CHAP v2 uit het VPN-profiel gehaald "voor beveiligingsredenen", met als resultaat dat oude L2TP-verbindingen breken.
MS-CHAP v2 handmatig terugzetten
Open ncpa.cpl (Win+R, typen, Enter).
Rechtsklik op de VPN-verbinding, Eigenschappen.
Tabblad Beveiliging.
Bij "Type VPN": selecteer Layer 2 Tunneling Protocol met IPsec (L2TP/IPsec).
"Deze protocollen toestaan" aanvinken.
Vink Microsoft CHAP versie 2 (MS-CHAP v2) aan.
OK, en test.
Via PowerShell (schaalbaar voor meerdere machines)
Voor certificaat-gebaseerde authenticatie (typisch in Always On VPN scenarios) controleer je of het client-certificaat in de persoonlijke store staat en geldig is:
Is het certificaat verlopen of ontbreekt het, dan moet de gebruiker een nieuwe uitgifte aanvragen via je PKI/AD CS server. Voor omgevingen waar Group Policy niet correct wordt toegepast, kan certificaat auto-enrollment ook stilletjes falen. Dat is een aparte rabbit hole.
Always On VPN diagnostiek in ondernemingsomgevingen
Voor Always On VPN implementaties (waar het VPN-profiel via MDM of PowerShell wordt uitgerold en automatisch verbindt), zijn de foutcodes hetzelfde maar de diagnostische aanpak verschilt. Je hebt niet de luxe om de gebruiker "gewoon opnieuw te verbinden" te vragen. De tunnel moet zichzelf herstellen.
Verbindingsprofiel dumpen
# Het complete profiel bekijken, inclusief route-tabel en split tunneling
Get-VpnConnection -AllUserConnection | Format-List *
# Route-tabel voor split tunnel controleren
Get-VpnConnectionRoute -ConnectionName "AlwaysOn VPN" -AllUserConnection
20227: verbinding mislukt met specifieke reasoncode, bevat de foutcode letterlijk in de tekst.
20223: succesvolle verbinding. Als deze verschijnt na je fix, weet je dat het gewerkt heeft.
20276: gebruikersgeleide verbindingspoging, nuttig om onderscheid te maken tussen handmatige en automatische pogingen.
CMTrace-stijl live tracing
Voor complexe scenarios waar de fout intermitent is, kun je een RRAS trace draaien op de client:
# Trace starten
netsh ras set tracing * enabled
# Reproduceer het probleem, probeer te verbinden
# Trace stoppen
netsh ras set tracing * disabled
# Logs staan in:
# C:\Windows\tracing\
De rastapi.log en rasman.log geven je packet-niveau detail over waar de handshake faalt. Voor grote implementaties raad ik aan om deze logs door Richard Hicks' Always On VPN referenties heen te lezen. Hij documenteert bijna elke edge case die je in productie tegenkomt.
Veelgestelde Vragen
Waarom werkt mijn VPN niet meer na de Windows 11 24H2 update?
De 24H2 cumulatieve updates hebben in meerdere builds registerwaarden onder PolicyAgent en RasMan teruggezet naar Microsoft-defaults. De meest voorkomende oorzaak is dat AssumeUDPEncapsulationContextOnSendRule weer op 0 staat, wat NAT-Traversal voor L2TP breekt. Zet de waarde terug op 2 en reboot.
Wat betekent AssumeUDPEncapsulationContextOnSendRule en waarom moet ik het aanzetten?
Deze DWORD-waarde vertelt Windows dat de VPN-client en/of server achter een NAT-router staan en dat IPsec pakketten in UDP moeten worden ingekapseld voor traversal. Waarde 2 dekt beide zijden achter NAT, de veiligste keuze voor thuiskantoren en hotel-wifi. Zonder deze waarde faalt L2TP met fout 789.
Welke poorten moet ik openzetten voor IKEv2 VPN in de firewall?
IKEv2 gebruikt UDP-poort 500 voor het initiële key-exchange en UDP-poort 4500 voor NAT-Traversal. Daarnaast moet IP-protocol 50 (ESP) toegestaan zijn. Dat is geen poort maar een apart protocol dat routers en firewalls expliciet moeten forwarden. Zonder ESP komt de tunnel wel op, maar wordt er geen data doorgestuurd.
Hoe controleer ik of de IPsec Policy Agent service draait?
Open PowerShell als administrator en draai Get-Service PolicyAgent, RasMan, IKEEXT. Alle drie moeten Status "Running" hebben en StartType "Automatic". Als een van beide fout is, gebruik Set-Service -Name PolicyAgent -StartupType Automatic en Start-Service PolicyAgent om te herstellen.
Wat is het verschil tussen VPN fout 691 en fout 812?
Fout 691 komt van de client. Windows heeft de credentials afgewezen na een lokale pre-check (verkeerde gebruikersnaam/wachtwoord, of het account is vergrendeld in Active Directory). Fout 812 komt van de server: de authenticatiemethode zelf mismatched. Als de gebruiker het juiste wachtwoord invoert en 812 krijgt, is het bijna altijd een MS-CHAP v2 of EAP-configuratieprobleem, niet de credentials.
Kan ik de RasMan service veilig herstarten tijdens werkuren?
Ja, maar alle actieve VPN-verbindingen op die machine worden onderbroken. Voor Always On VPN reconnecten ze meestal automatisch binnen 30 seconden. Voor handmatige verbindingen moet de gebruiker opnieuw verbinden. Draai Restart-Service RasMan -Force als de verbinding hangt en je een clean state nodig hebt.