Compartir vía


Solución de problemas de Azure VPN Gateway mediante registros de diagnóstico

En este artículo se explican los distintos registros disponibles para el diagnóstico de VPN Gateway y cómo usarlos para solucionar problemas de VPN Gateway de forma eficaz.

Si su problema con Azure no se trata en este artículo, visite los foros de Azure en Microsoft Q&A y Stack Overflow. Puede publicar su problema en ellos o en @AzureSupport en Twitter. También puede enviar una solicitud de soporte técnico de Azure. Para enviar una solicitud de soporte técnico, en la página de soporte técnico de Azure, seleccione Obtener soporte técnico.

Los registros siguientes están disponibles en Azure:

  • GatewayDiagnosticLog
  • TunnelDiagnosticLog
  • RouteDiagnosticLog
  • IKEDiagnosticLog
  • P2SDiagnosticLog

Para las puertas de enlace basadas en directivas, solo GatewayDiagnosticLog y RouteDiagnosticLog están disponibles.

Para todos los registros de VPN Gateway, consulte Referencia de datos de supervisión de Azure VPN Gateway

Para configurar eventos de registro de diagnóstico desde Azure VPN Gateway mediante Azure Log Analytics, consulte Creación de una configuración de diagnóstico en Azure Monitor.

GatewayDiagnosticLog

Los cambios de configuración se auditan en la tabla GatewayDiagnosticLog. Podría tardar unos minutos antes de que los cambios que se ejecuten se reflejen en los registros.

Aquí tiene una consulta de ejemplo como referencia.

AzureDiagnostics  
| where Category == "GatewayDiagnosticLog"  
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup  
| sort by TimeGenerated asc

Esta consulta en GatewayDiagnosticLog muestra varias columnas.

Nombre Descripción
TimeGenerated La marca de tiempo de cada evento, en la zona horaria UTC.
OperationName El evento que se ha producido. Puede ser SetGatewayConfiguration, SetConnectionConfiguration, HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration.
Mensaje El detalle de la operación que está ocurriendo y muestra los resultados correctos y erróneos.

En el ejemplo siguiente, se muestra la actividad que se registra cuando se aplica una nueva configuración:

Ejemplo de una operación de establecimiento de la puerta de enlace que se ha encontrado en GatewayDiagnosticLog.

Tenga en cuenta que se registra una operación SetGatewayConfiguration cada vez que se modifique una configuración en una instancia de VPN Gateway o en una puerta de enlace de red local.

Comparar los resultados de la tabla GatewayDiagnosticLog con los resultados de la tabla TunnelDiagnosticLog puede ayudar a determinar si se produjo un error de conectividad de túnel durante un cambio de configuración o una actividad de mantenimiento. Si es así, proporciona una indicación significativa hacia la posible causa principal.

TunnelDiagnosticLog

La tabla TunnelDiagnosticLog es útil para inspeccionar los estados de conectividad históricos del túnel.

Aquí tiene una consulta de ejemplo como referencia.

AzureDiagnostics
| where Category == "TunnelDiagnosticLog"
//| where remoteIP_s == "<REMOTE IP OF TUNNEL>"
| project TimeGenerated, OperationName, remoteIP_s, instance_s, Resource, ResourceGroup
| sort by TimeGenerated asc

Esta consulta sobre TunnelDiagnosticLog muestra varias columnas.

Nombre Descripción
TimeGenerated La marca de tiempo de cada evento, en la zona horaria UTC.
OperationName El evento que se ha producido. Puede ser TunnelConnected o TunnelDisconnected.
remoteIP_s La dirección IP del dispositivo VPN local. En escenarios reales, resulta útil filtrar por la dirección IP del dispositivo local pertinente si hay más de uno.
Instance_s La instancia de rol de puerta de enlace que desencadenó el evento. Puede ser "GatewayTenantWorker_IN_0" o "GatewayTenantWorker_IN_1", que son los nombres de las dos instancias de la puerta de enlace.
Recurso Indica el nombre de la puerta de enlace de VPN.
ResourceGroup Indica el grupo de recursos donde se encuentra la puerta de enlace.

Salida de ejemplo:

Ejemplo de evento conectado a un túnel detectado en TunnelDiagnosticLog

TunnelDiagnosticLog es útil para solucionar problemas de eventos pasados sobre desconexiones de VPN inesperadas. Su naturaleza ligera ofrece la posibilidad de analizar intervalos de tiempo grandes durante varios días con poco esfuerzo. Solo después de identificar la marca de tiempo de una desconexión, puede cambiar al análisis más detallado de la tabla IKEdiagnosticLog para profundizar más en el razonamiento de las desconexiones si estas están relacionados con IPSec.

Algunas sugerencias para la solución de problemas:

  • Si observa un evento de desconexión en una instancia de puerta de enlace, seguido de un evento de conexión en otra instancia de puerta de enlace en unos segundos, esto indica que se trata de una conmutación por error de puerta de enlace. Este evento suele surgir debido al mantenimiento en una instancia de puerta de enlace. Para más información sobre este comportamiento, consulte acerca de la redundancia de Azure VPN Gateway.
  • Se observa el mismo comportamiento si ejecuta intencionadamente un restablecimiento de puerta de enlace en el lado de Azure, lo que provoca un reinicio de la instancia de puerta de enlace activa. Para más información sobre este comportamiento, consulte Restablecimiento de una puerta de enlace o conexión de VPN.
  • Si ve un evento de desconexión en una instancia de puerta de enlace, seguido de un evento de conexión en la misma instancia de puerta de enlace en pocos segundos, es posible que esté examinando un problema de red que provoca un tiempo de espera de DPD o una desconexión enviada erróneamente por el dispositivo local.

RouteDiagnosticLog

La tabla RouteDiagnosticLog realiza un seguimiento de la actividad de rutas modificadas estáticamente o rutas recibidas mediante BGP.

Aquí tiene una consulta de ejemplo como referencia.

AzureDiagnostics
| where Category == "RouteDiagnosticLog"
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup

Esta consulta en RouteDiagnosticLog mostrará varias columnas.

Nombre Descripción
TimeGenerated La marca de tiempo de cada evento, en la zona horaria UTC.
OperationName El evento que se ha producido. Puede ser StaticRouteUpdate, BgpRouteUpdate, BgpConnectedEvent, BgpDisconnectedEvent.
Mensaje El detalle de la operación que está ocurriendo.

La salida muestra información útil sobre los pares BGP conectados o desconectados y las rutas intercambiadas.

Ejemplo:

Ejemplo de actividad de intercambio de rutas BGP que se ha detectado en RouteDiagnosticLog.

IKEDiagnosticLog

La tabla IKEDiagnosticLog ofrece un registro de depuración detallado para IKE/IPSec. Esto resulta útil para la revisión al solucionar problemas de escenarios de desconexiones o de errores de conexión de VPN.

Aquí tiene una consulta de ejemplo como referencia.

AzureDiagnostics  
| where Category == "IKEDiagnosticLog" 
| extend Message1=Message
| parse Message with * "Remote " RemoteIP ":" * "500: Local " LocalIP ":" * "500: " Message2
| extend Event = iif(Message has "SESSION_ID",Message2,Message1)
| project TimeGenerated, RemoteIP, LocalIP, Event, Level 
| sort by TimeGenerated asc

Esta consulta en IKEDiagnosticLog muestra varias columnas.

Nombre Descripción
TimeGenerated La marca de tiempo de cada evento, en la zona horaria UTC.
RemoteIP La dirección IP del dispositivo VPN local. En escenarios reales, resulta útil filtrar por la dirección IP del dispositivo local pertinente si hay más de uno.
LocalIP la dirección IP de la instancia de VPN Gateway en la que estamos solucionando problemas. En escenarios reales, resulta útil filtrar por la dirección IP de la puerta de enlace de VPN pertinente. Habrá más de una en la suscripción.
Evento Contiene un mensaje de diagnóstico útil para la solución de problemas. Normalmente comienzan con una palabra clave y hacen referencia a las acciones realizadas por la puerta de enlace de Azure: [SEND] indica un evento provocado por un paquete IPSec enviado por la puerta de enlace de Azure. [RECEIVED] indica un evento en consecuencia de un paquete recibido desde un dispositivo local. [LOCAL] indica una acción realizada localmente por la puerta de enlace de Azure.

Observe cómo RemoteIP, LocalIP y las columnas de eventos no están presentes en la lista de columnas original en la base de datos AzureDiagnostics, pero se agregan a la consulta al analizar el resultado de la columna "Mensaje" para simplificar su análisis.

Sugerencias para solución de problemas:

  • Para identificar el inicio de una negociación ipsec, debe encontrar el mensaje SA_INIT inicial. Dicho mensaje podría enviarse por cualquier lado del túnel. Quien envía el primer paquete se denomina "iniciador" en la terminología de IPsec, mientras que el otro lado se convierte en el "respondedor". El primer SA_INIT es siempre el que muestra rCookie = 0.

  • Si no se puede establecer el túnel IPsec, Azure lo seguirá intentando cada pocos segundos. Por esta razón, la solución de problemas de "VPN inactiva" es conveniente en IKEdiagnosticLog, ya que no es necesario esperar a que se produzca un tiempo específico para reproducir el problema. Además, el error en teoría siempre será el mismo cada vez que se intenta, por lo que solo se puede ampliar una negociación de error de "ejemplo" en cualquier momento.

  • El SA_INIT contiene los parámetros IPSec que el par desea usar para esta negociación IPsec. Documento oficial
    El artículo Parámetros de IPSec/IKE predeterminados muestra los parámetros de IPsec que admite la puerta de enlace de Azure con la configuración predeterminada.

P2SDiagnosticLog

La última tabla disponible para los diagnósticos de VPN es P2SDiagnosticLog. En esta tabla se traza la actividad de Punto a sitio (solo protocolos IKEv2 y OpenVPN).

Aquí tiene una consulta de ejemplo como referencia.

AzureDiagnostics  
| where Category == "P2SDiagnosticLog"  
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup

Esta consulta en P2SDiagnosticLog mostrará varias columnas.

Nombre Descripción
TimeGenerated La marca de tiempo de cada evento, en la zona horaria UTC.
OperationName El evento que se ha producido. Será P2SLogEvent.
Mensaje El detalle de la operación que está ocurriendo.

La salida muestra todas las opciones de configuración de punto a sitio que ha aplicado la puerta de enlace y las directivas IPsec vigentes.

Ejemplo de conexión de punto a sitio que se ha detectado en P2SDiagnosticLog.

Además, cuando un cliente establece una conexión mediante la autenticación OpenVPN y Microsoft Entra ID para el punto a sitio, la tabla registra la actividad de paquetes de la siguiente manera:

[MSG] [default] [OVPN_XXXXXXXXXXXXXXXXXXXXXXXXXXX] Connect request received. IP=0.X.X.X:XXX
[MSG] [default] [OVPN_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] AAD authentication succeeded. Username=***tosouser@contoso.com
[MSG] [default] [OVPN_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx] Connection successful. Username=***tosouser@contoso.com IP=10.0.0.1

Nota:

En el registro de punto a sitio, el nombre de usuario está parcialmente oculto. El primer octeto de la dirección IP del usuario cliente se sustituye por 0.

Pasos siguientes

Para configurar alertas en los registros de recursos de túnel, consulte Configuración de alertas en los registros de diagnóstico de VPN Gateway.