Abra el diálogo de VPN de Windows tras un fallo y le dará un número y una frase, y la frase suele ser la mitad menos útil. El número identifica qué etapa de la conexión falló, y la etapa determina qué registro, qué ajuste y qué equipo mirar a continuación. Recorrer las etapas en orden lleva unos diez minutos y evita la secuencia habitual de reinstalar adaptadores, cambiar protocolos y reiniciar la pila para arreglar una cuenta a la que nunca se le permitió marcar.

Lea el número como una etapa

Una conexión nativa pasa por cuatro hitos. Llega al servidor y establece un enlace, negocia la seguridad, autentica al usuario y aplica direccionamiento y enrutamiento. Un fallo en cada uno deja pruebas distintas, y un código que pertenece a una etapa no dice nada útil sobre las demás.

El error que hay que evitar es tratar el código como una gravedad. Un fallo de enlace y un fallo de autorización se leen ambos como "no se pudo conectar", y no tienen nada más en común. La gravedad dice cuán urgente es algo; la etapa dice qué abrir.

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 uno: el enlace y el intento de marcación

829 significa que el enlace subyacente se cayó. No dice si el par remoto dejó de responder, si un elemento intermedio mató la sesión o si una política del cliente la cerró. Un código de finalización de marcación como 703 es aún más temprano: el intento nunca llegó a tener enlace, lo que suele apuntar al perfil, al estado del servicio 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 de eventos es la parte que la gente se salta. Un registro del lado del cliente con una marca de tiempo y un nombre de interfaz vale más que el diálogo, porque dice si el intento siquiera salió de la máquina. Ningún registro y ninguna respuesta del oyente es un problema de alcance, y ninguna edición del cliente lo cambia.

Si el mismo perfil funciona en otra red, deténgase aquí. El código describe una condición de la ruta y no un error de configuración, y la siguiente comparación útil son las dos capturas y no otra reinstalación.

Etapa dos: PPP y el enlace del minipuerto

720 se sitúa entre el enlace y el usuario. El túnel se levantó y luego la capa PPP no pudo negociar una dirección ni un protocolo de control, lo que a menudo es un problema de enlace en el cliente y no una credencial rechazada. Esa distinción es todo el valor del código: dice que la credencial nunca se alcanzó, así que la cuenta no es el sospechoso.

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

Leer esas dos salidas es más informativo que reiniciar cualquier cosa. Un minipuerto que está presente pero no se inició, o un enlace de protocolo desactivado por otro programa, producen exactamente el fallo de esta etapa. Ambos se pueden arreglar sin tocar el resto de la pila. Un reinicio completo, en cambio, elimina direccionamiento y estado de filtrado que no tenían nada que ver con el fallo.

Etapa tres: identidad y autorización

691 significa que se rechazaron las credenciales. 649 significa que la cuenta no tiene permiso para marcar, y 812 significa que una política de acceso remoto rechazó la conexión. Son decisiones, no fallos de transporte, y el cliente solo puede notificarlas.

Las pruebas están al otro lado. Pida al operador de la puerta de enlace el intento de esa marca de tiempo y la política que coincidió; pregunte al propietario del directorio si la cuenta tiene permiso de marcación y si está en el grupo que exige la política. Cambiar el tipo de túnel o reinstalar el cliente no puede alterar una decisión tomada sobre una identidad.

Un hábito útil en esta etapa es escribir la cadena exacta de la cuenta en el ticket, incluido cualquier prefijo de dominio. Una cantidad sorprendente de casos 691 son credenciales guardadas para el dominio equivocado, y eso se ve en la cadena de la cuenta y no en los ajustes del protocolo.

Etapa cuatro: conectado, y nada funciona

Una conexión puede completarse y seguir siendo inútil. Tiene una dirección, el cliente informa de éxito y cada petición de la aplicación caduca. Nada en el diálogo lo refleja, y no hay código que consultar. En ese punto el diálogo se acabó y las pruebas útiles están en otro sitio.

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 falta la ruta, el servidor no la empujó o el cliente la descartó. Si la ruta existe y el nombre falla, el problema es la resolución. Si ambos funcionan y la aplicación sigue fallando, ha pasado el túnel y está en la configuración de la propia aplicación.

Mantenga los cambios en una capa por prueba. Cada edición antes del siguiente intento pasa a formar parte del contexto del siguiente código, y un código que describe su última edición es peor que ningún código.

Un intento, un cambio, un registro

Sea cual sea la etapa, el registro debe contener el código, el mensaje, el nombre del perfil, la marca de tiempo y la red en la que estaba. Cinco campos, y cada uno de ellos ya está delante de usted en el diálogo o en el registro del cliente. Ese conjunto es lo bastante pequeño para pegarlo en un ticket y lo bastante concreto para que otra persona lo reproduzca.

Luego ponga esa marca de tiempo junto al registro del otro lado. La tabla cerca de la parte superior de esta página dice qué etapa posee cada discrepancia. Sin el segundo registro el código solo estrecha la búsqueda; con él, la etapa queda decidida. La comparación es lo que convierte un número en un diagnóstico y no en una conjetura.

Ese hábito cubre casi cualquier fallo nativo de VPN en Windows, y ninguna de las ramas requiere reinstalar nada. El diálogo siempre le decía cuál tenía; el trabajo está en negarse a tratarlos todos como el mismo problema.

Artículos relacionados