Resolver problemas de Gateway de VPN do Azure com registos de diagnóstico

Este artigo ajuda a entender os diferentes logs disponíveis para o diagnóstico do Gateway VPN e como usá-los para solucionar problemas de gateway VPN de forma eficaz.

Se o seu problema do Azure não for resolvido neste artigo, visite os fóruns do Azure em Microsoft Q & A e Stack Overflow. Você pode postar seu problema nesses fóruns ou postar para @AzureSupport no Twitter. Você também pode enviar uma solicitação de suporte do Azure. Para enviar uma solicitação de suporte, na página de suporte do Azure, selecione Obter suporte.

Os seguintes logs estão disponíveis* no Azure:

Name Descrição
GatewayDiagnosticLog Contém logs de diagnóstico para eventos de configuração de gateway, alterações primárias e eventos de manutenção.
TunnelDiagnosticLog Contém eventos de alteração de estado do túnel. Os eventos de conexão/desconexão de túnel têm um motivo resumido para a alteração de estado, se aplicável.
RouteDiagnosticLog Registra alterações em rotas estáticas e eventos BGP que ocorrem no gateway.
IKEDiagnosticLog Registra mensagens de controle IKE e eventos no gateway.
P2SDiagnosticLog Registra mensagens de controle ponto a site e eventos no gateway.

*para gateways baseados em políticas, apenas GatewayDiagnosticLog e RouteDiagnosticLog estão disponíveis.

Observe que há várias colunas disponíveis nessas tabelas. Neste artigo, apresentamos apenas os mais relevantes para facilitar o consumo de logs.

Configurar o registo

Siga este procedimento para saber como configurar eventos de log de diagnóstico do Gateway de VPN do Azure usando o Azure Log Analytics:

  1. Crie um espaço de trabalho do Log Analytics usando este artigo.

  2. Encontre seu gateway de VPN na folha Configurações do Diagnóstico do Monitor > .

Screenshot of the Diagnostic settings blade.

  1. Selecione o gateway e clique em "Adicionar configuração de diagnóstico".

Screenshot of the Add diagnostic setting interface.

  1. Preencha o nome da configuração de diagnóstico, selecione todas as categorias de log e escolha o espaço de trabalho do Log Analytics.

Detailed screenshot of the Add diagnostic setting properties.

Nota

Pode levar algumas horas para que os dados apareçam inicialmente.

GatewayDiagnosticLog

As alterações de configuração são auditadas na tabela GatewayDiagnosticLog . Pode levar alguns minutos até que as alterações executadas sejam refletidas nos logs.

Aqui você tem uma consulta de exemplo como referência.

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

Esta consulta em GatewayDiagnosticLog mostrará várias colunas.

Name Descrição
Gerado por tempo o carimbo de data/hora de cada evento, no fuso horário UTC.
Nome da operação o evento que aconteceu. Pode ser SetGatewayConfiguration, SetConnectionConfiguration , HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration.
Mensagem o detalhe de qual operação está acontecendo e lista os resultados bem-sucedidos/falhados.

O exemplo abaixo mostra a atividade registrada quando uma nova configuração foi aplicada:

Example of a Set Gateway Operation seen in GatewayDiagnosticLog.

Observe que um SetGatewayConfiguration será registrado sempre que alguma configuração for modificada em um Gateway VPN ou em um Gateway de Rede Local. O cruzamento dos resultados da tabela GatewayDiagnosticLog com os da tabela TunnelDiagnosticLog pode nos ajudar a determinar se uma falha de conectividade de túnel foi iniciada ao mesmo tempo em que uma configuração foi alterada ou se ocorreu uma manutenção. Se assim for, temos uma grande indicação para a possível causa raiz.

TunnelDiagnosticLog

A tabela TunnelDiagnosticLog é muito útil para inspecionar os status históricos de conectividade do túnel.

Aqui você tem uma consulta de exemplo como referência.

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 no TunnelDiagnosticLog mostrará várias colunas.

Name Descrição
Gerado por tempo o carimbo de data/hora de cada evento, no fuso horário UTC.
Nome da operação o evento que aconteceu. Pode ser TunnelConnected ou TunnelDisconnected.
remoteIP_s o endereço IP do dispositivo VPN local. Em cenários do mundo real, é útil filtrar pelo endereço IP do dispositivo local relevante se houver mais de um.
Instance_s A instância de função de gateway que disparou o evento. Pode ser GatewayTenantWorker_IN_0 ou GatewayTenantWorker_IN_1, que são os nomes das duas instâncias do gateway.
Recurso indica o nome do gateway VPN.
ResourceGroup Indica o grupo de recursos onde o gateway está.

Saída de exemplo:

Example of a Tunnel Connected Event seen in TunnelDiagnosticLog.

O TunnelDiagnosticLog é muito útil para solucionar problemas de eventos anteriores sobre desconexões VPN inesperadas. Sua natureza leve oferece a possibilidade de analisar grandes intervalos de tempo ao longo de vários dias com pouco esforço. Somente depois de identificar o carimbo de data/hora de uma desconexão, você pode alternar para a análise mais detalhada da tabela IKEdiagnosticLog para aprofundar o raciocínio das desconexões devem estar relacionadas ao IPsec.

Algumas dicas de solução de problemas:

  • Se você vir um evento de desconexão em uma instância de gateway, seguido por um evento de conexão na instância de gateway diferente em alguns segundos, você está examinando um failover de gateway. Esse geralmente é um comportamento esperado devido à manutenção em uma instância de gateway. Para saber mais sobre esse comportamento, consulte Sobre a redundância de gateway de VPN do Azure.
  • O mesmo comportamento será observado se você executar intencionalmente uma Redefinição de Gateway no lado do Azure - o que causa uma reinicialização da instância de gateway ativa. Para saber mais sobre esse comportamento, consulte Redefinir um gateway de VPN.
  • Se você vir um evento de desconexão em uma instância de gateway, seguido por um evento de conexão na mesma instância de gateway em alguns segundos, você pode estar observando uma falha de rede causando um tempo limite de DPD ou uma desconexão enviada erroneamente pelo dispositivo local.

RouteDiagnosticLog

A tabela RouteDiagnosticLog rastreia a atividade para rotas modificadas estaticamente ou rotas recebidas via BGP.

Aqui você tem uma consulta de exemplo como referência.

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

Esta consulta no RouteDiagnosticLog mostrará várias colunas.

Name Descrição
Gerado por tempo o carimbo de data/hora de cada evento, no fuso horário UTC.
Nome da operação o evento que aconteceu. Pode ser StaticRouteUpdate , BgpRouteUpdate, BgpConnectedEvent, BgpDisconnectedEvent.
Mensagem o detalhe de que operação está acontecendo.

A saída mostrará informações úteis sobre pares BGP conectados/desconectados e rotas trocadas.

Exemplo:

Example of BGP route exchange activity seen in RouteDiagnosticLog.

IKEDiagnosticLog

A tabela IKEDiagnosticLog oferece log de depuração detalhado para IKE/IPsec. Isso é muito útil para revisar ao solucionar problemas de desconexões ou falha ao conectar cenários de VPN.

Aqui você tem uma consulta de exemplo como referência.

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 no IKEDiagnosticLog mostrará várias colunas.

Name Descrição
Gerado por tempo o carimbo de data/hora de cada evento, no fuso horário UTC.
RemoteIP o endereço IP do dispositivo VPN local. Em cenários do mundo real, é útil filtrar pelo endereço IP do dispositivo local relevante se houver mais de um.
LocalIP o endereço IP do Gateway VPN que estamos solucionando. Em cenários do mundo real, é útil filtrar pelo endereço IP do gateway VPN relevante caso haja mais de um em sua assinatura.
Evento contém uma mensagem de diagnóstico útil para a resolução de problemas. Eles geralmente começam com uma palavra-chave e se referem às ações executadas pelo Gateway do Azure: [SEND] indica um evento causado por um pacote IPSec enviado pelo Gateway do Azure. [RECEBIDO] Indica um evento em consequência de um pacote recebido do dispositivo local. [LOCAL] indica uma ação executada localmente pelo Gateway do Azure.

Observe como as colunas RemoteIP, LocalIP e Event não estão presentes na lista de colunas original no banco de dados AzureDiagnostics, mas são adicionadas à consulta analisando a saída da coluna "Mensagem" para simplificar sua análise.

Dicas de solução de problemas:

  • Para identificar o início de uma negociação IPSec, você precisa encontrar a mensagem SA_INIT inicial. Essa mensagem pode ser enviada por ambos os lados do túnel. Quem envia o primeiro pacote é chamado de "iniciador" na terminologia IPsec, enquanto o outro lado se torna o "responder". A primeira mensagem SA_INIT é sempre aquela em que rCookie = 0.

  • Se o túnel IPsec não for estabelecido, o Azure continuará tentando novamente a cada poucos segundos. Por esse motivo, a solução de problemas de "VPN para baixo" é muito conveniente no IKEdiagnosticLog, porque você não precisa esperar por um tempo específico para reproduzir o problema. Além disso, a falha será, em teoria, sempre a mesma sempre que tentarmos, para que você possa apenas ampliar uma "amostra" de negociação falhando a qualquer momento.

  • O SA_INIT contém os parâmetros IPSec que o par deseja usar para essa negociação IPsec. O documento oficial
    Os parâmetros IPsec/IKE padrão listam os parâmetros IPsec suportados pelo Gateway do Azure com as configurações padrão.

P2SDiagnosticLog

A última tabela disponível para diagnóstico de VPN é P2SDiagnosticLog. Esta tabela rastreia a atividade para Ponto a Site (apenas protocolos IKEv2 e OpenVPN).

Aqui você tem uma consulta de exemplo como referência.

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

Esta consulta no P2SDiagnosticLog mostrará várias colunas.

Name Descrição
Gerado por tempo o carimbo de data/hora de cada evento, no fuso horário UTC.
Nome da operação o evento que aconteceu. Será P2SLogEvent.
Mensagem o detalhe de que operação está acontecendo.

A saída mostrará todas as configurações Ponto a Site que o gateway aplicou, bem como as políticas IPsec em vigor.

Example of Point to Site connection seen in P2SDiagnosticLog.

Além disso, sempre que um cliente se conectar via IKEv2 ou OpenVPN Point to Site, a tabela registrará a atividade do pacote, conversas EAP/RADIUS e resultados bem-sucedidos/falhados pelo usuário.

Example of EAP authentication seen in P2SDiagnosticLog.

Passos Seguintes

Para configurar alertas em logs de recursos de túnel, consulte Configurar alertas em logs de recursos do Gateway VPN.