Obriu el diàleg de VPN de Windows després d’una fallada i us donarà un número i una frase, i la frase sol ser la meitat menys útil. El número identifica quina etapa de la connexió ha fallat, i l’etapa determina quin registre, quin paràmetre i quin equip cal mirar després. Recórrer les etapes en ordre triga uns deu minuts i evita la seqüència coneguda de reinstal·lar adaptadors, canviar protocols i reiniciar la pila per arreglar un compte al qual mai no es va permetre marcar.

Llegiu el número com una etapa

Una connexió nativa passa per quatre fites. Arriba al servidor i estableix un enllaç, negocia la seguretat, autentica l’usuari i aplica adreçament i encaminament. Una fallada en cadascuna deixa proves diferents, i un codi que pertany a una etapa no diu res útil sobre les altres.

L’error que cal evitar és tractar el codi com una gravetat. Una fallada d’enllaç i una fallada d’autorització es llegeixen totes dues com a "no s’ha pogut connectar", i no tenen res més en comú. La gravetat diu com és d’urgent una cosa; l’etapa diu què cal obrir.

Code familyStageWhere the evidence lives
829, 703Link or dial completionClient event log, remote listener reachability
720PPP negotiation and miniport bindingAdapter state, bindings, client log detail
691, 649, 812Identity and authorizationGateway or authentication server decision
Connected, no trafficAddressing, routing and resolutionRoute table and resolver configuration

Etapa u: l’enllaç i l’intent de marcació

829 significa que l’enllaç subjacent s’ha trencat. No diu si el pare remot ha deixat de respondre, si un element intermediari ha matat la sessió o si una política del client l’ha tancada. Un codi de final de marcació com 703 és encara més primerenc: l’intent no va arribar a tenir enllaç, cosa que sol apuntar al perfil, a l’estat del servei o a una política local.

Get-VpnConnection -Name 'Corp' | Select-Object Name,ServerAddress,TunnelType,AuthenticationMethod,ConnectionStatus
Test-NetConnection -ComputerName vpn.example.net -Port 443
Get-WinEvent -LogName Application -MaxEvents 200 | Where-Object ProviderName -match 'RasClient' | Select-Object -First 15 TimeCreated,Id,Message

La consulta d’esdeveniments és la part que la gent s’estalvia. Un registre del costat del client amb una marca de temps i un nom d’interfície val més que el diàleg, perquè diu si l’intent fins i tot va sortir de la màquina. Cap registre i cap resposta de l’oient és un problema d’abast, i cap edició del client no ho canvia.

Si el mateix perfil funciona en una altra xarxa, atureu-vos aquí. El codi descriu una condició del camí i no un error de configuració, i la propera comparació útil són les dues captures i no una altra reinstal·lació.

Etapa dos: PPP i l’enllaç del miniport

720 se situa entre l’enllaç i l’usuari. El túnel es va aixecar i després la capa PPP no va poder negociar una adreça ni un protocol de control, cosa que sovint és un problema d’enllaç al client i no una credencial rebutjada. Aquesta distinció és tot el valor del codi: diu que la credencial no es va arribar a tocar, així que el compte no és el sospitós.

Get-NetAdapter -IncludeHidden | Where-Object InterfaceDescription -match 'WAN Miniport' | Select-Object Name,Status,ifIndex
Get-NetAdapterBinding | Where-Object ComponentID -match 'ms_pptp|ms_l2tp|ms_sstp|ms_agile' | Select-Object Name,ComponentID,Enabled

Llegir aquestes dues sortides és més informatiu que reiniciar qualsevol cosa. Un miniport que hi és però no s’ha iniciat, o un enllaç de protocol desactivat per un altre programari, produeix exactament la fallada d’aquesta etapa. Tots dos es poden arreglar sense tocar la resta de la pila. Una reinicialització completa, en canvi, elimina adreçament i estat de filtratge que no tenien res a veure amb la fallada.

Etapa tres: identitat i autorització

691 significa que s’han rebutjat les credencials. 649 significa que el compte no té permís per marcar, i 812 significa que una política d’accés remot ha rebutjat la connexió. Són decisions, no fallades de transport, i el client només les pot reportar.

Les proves són a l’altre costat. Demaneu a l’operador de la passarel·la l’intent d’aquella marca de temps i la política que va coincidir; pregunteu al propietari del directori si el compte té permís de marcació i si és al grup que la política requereix. Canviar el tipus de túnel o reinstal·lar el client no pot alterar una decisió presa sobre una identitat.

Un hàbit útil en aquesta etapa és escriure la cadena exacta del compte al tiquet, incloent-hi qualsevol prefix de domini. Un nombre sorprenent de casos 691 són credencials desades per al domini equivocat, i això es veu a la cadena del compte i no als paràmetres del protocol.

Etapa quatre: connectat, i res no funciona

Una connexió es pot completar i continuar sent inútil. Té una adreça, el client informa d’èxit i cada petició de l’aplicació expira. Res del diàleg no ho reflecteix, i no hi ha cap codi per consultar. En aquest punt el diàleg s’ha acabat i les proves útils són en un altre lloc.

Get-NetRoute -DestinationPrefix 10.24.0.0/16 | Select-Object DestinationPrefix,NextHop,InterfaceAlias
Resolve-DnsName files.corp.example.internal
Test-NetConnection -ComputerName 10.24.6.15 -Port 445

Si la ruta falta, el servidor no l’ha enviada o el client l’ha descartada. Si la ruta hi és i el nom falla, el problema és la resolució. Si tots dos funcionen i l’aplicació encara falla, heu passat el túnel i sou a la configuració de l’aplicació.

Mantingueu els canvis a una capa per prova. Cada edició feta abans del proper intent passa a formar part del context del proper codi, i un codi que descriu la vostra darrera edició és pitjor que cap codi.

Un intent, un canvi, un registre

Sigui quina sigui l’etapa, el registre ha de contenir el codi, el missatge, el nom del perfil, la marca de temps i la xarxa on éreu. Cinc camps, i tots ja els teniu davant al diàleg o al registre del client. Aquest conjunt és prou petit per enganxar-lo en un tiquet i prou específic perquè una altra persona el reprodueixi.

Després poseu aquella marca de temps al costat del registre de l’altre costat. La taula de la part superior d’aquesta pàgina diu quina etapa posseeix cada discrepància. Sense el segon registre el codi només estreta la cerca; amb ell, l’etapa queda decidida. La comparació és el que converteix un número en un diagnòstic i no en una conjectura.

Aquest hàbit cobreix gairebé qualsevol fallada nativa de VPN a Windows, i cap de les branques requereix reinstal·lar res. El diàleg sempre us deia quina teníeu; la feina és negar-se a tractar-les totes com el mateix problema.

Articles relacionats