Risolvere i problemi di Gateway VPN di Azure usando i log di diagnostica

Questo articolo illustra i diversi log disponibili per la diagnostica Gateway VPN e come usarli per risolvere in modo efficace i problemi del gateway VPN.

Se il problema di Azure non viene risolto in questo articolo, visitare i forum di Azure su Microsoft Q & A e Stack Overflow. Puoi pubblicare il tuo problema in questi forum o pubblicarlo su @AzureSupport su Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure. Per inviare una richiesta di supporto, selezionare Supporto tecnico nella pagina del supporto di Azure.

I log seguenti sono disponibili* in Azure:

Nome Descrizione
GatewayDiagnosticLog Contiene i log di diagnostica per eventi di configurazione del gateway, modifiche primarie ed eventi di manutenzione.
TunnelDiagnosticLog Contiene eventi di modifica dello stato del tunnel. Per gli eventi di connessione/disconnessione dei tunnel è disponibile un riepilogo del motivo della modifica dello stato, se applicabile.
RouteDiagnosticLog Registra le modifiche alle route statiche e agli eventi BGP che si verificano nel gateway.
IKEDiagnosticLog Registra i messaggi e gli eventi di controllo IKE nel gateway.
P2SDiagnosticLog Registra messaggi ed eventi di controllo da punto a sito nel gateway.

*per i gateway basati su criteri, sono disponibili solo GatewayDiagnosticLog e RouteDiagnosticLog.

Si noti che in queste tabelle sono disponibili diverse colonne. In questo articolo vengono presentati solo quelli più rilevanti per semplificare l'utilizzo dei log.

Configurare la registrazione

Seguire questa procedura per informazioni su come configurare gli eventi del log di diagnostica da Azure Gateway VPN usando Azure Log Analytics:

  1. Creare un'area di lavoro Log Analytics usando questo articolo.

  2. Trovare il gateway VPN nel pannello Monitoraggio > impostazioni di diagnostica.

Screenshot of the Diagnostic settings blade.

  1. Selezionare il gateway e fare clic su "Aggiungi impostazione di diagnostica".

Screenshot of the Add diagnostic setting interface.

  1. Immettere il nome dell'impostazione di diagnostica, selezionare tutte le categorie di log e scegliere l'area di lavoro Log Analytics.

Detailed screenshot of the Add diagnostic setting properties.

Nota

Potrebbero essere necessarie alcune ore prima che i dati vengano visualizzati.

GatewayDiagnosticLog

Le modifiche alla configurazione vengono controllate nella tabella GatewayDiagnosticLog . Potrebbero essere necessari alcuni minuti prima che le modifiche eseguite vengano riflesse nei log.

Qui è disponibile una query di esempio come riferimento.

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

Questa query in GatewayDiagnosticLog mostrerà più colonne.

Nome Descrizione
TimeGenerated timestamp di ogni evento, nel fuso orario UTC.
OperationName l'evento che si è verificato. Può trattarsi di SetGatewayConfiguration, Set Connessione ionConfiguration, HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration.
Messaggio il dettaglio dell'operazione in corso ed elenca i risultati di esito positivo/negativo.

L'esempio seguente mostra l'attività registrata quando è stata applicata una nuova configurazione:

Example of a Set Gateway Operation seen in GatewayDiagnosticLog.

Si noti che un setGatewayConfiguration verrà registrato ogni volta che viene modificata una configurazione in un Gateway VPN o in un gateway di rete locale. Facendo riferimento incrociato ai risultati della tabella GatewayDiagnosticLog con quelli della tabella TunnelDiagnosticLog , è possibile determinare se un errore di connettività del tunnel è stato avviato contemporaneamente alla modifica di una configurazione o se è stata eseguita una manutenzione. In tal caso, abbiamo un ottimo puntatore verso la possibile causa radice.

TunnelDiagnosticLog

La tabella TunnelDiagnosticLog è molto utile per esaminare gli stati di connettività cronologici del tunnel.

Qui è disponibile una query di esempio come riferimento.

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

Questa query in TunnelDiagnosticLog mostrerà più colonne.

Nome Descrizione
TimeGenerated timestamp di ogni evento, nel fuso orario UTC.
OperationName l'evento che si è verificato. Può essere Tunnel Connessione ed o TunnelDisconnected.
remoteIP_s l'indirizzo IP del dispositivo VPN locale. Negli scenari reali, è utile filtrare in base all'indirizzo IP del dispositivo locale pertinente deve essere presente più di uno.
Instance_s Istanza del ruolo del gateway che ha attivato l'evento. Può essere GatewayTenantWorker_IN_0 o GatewayTenantWorker_IN_1, ovvero i nomi delle due istanze del gateway.
Conto risorse indica il nome del gateway VPN.
ResourceGroup indica il gruppo di risorse in cui si trova il gateway.

Output di esempio:

Example of a Tunnel Connected Event seen in TunnelDiagnosticLog.

TunnelDiagnosticLog è molto utile per risolvere gli eventi precedenti relativi alle disconnessioni VPN impreviste. La sua natura leggera offre la possibilità di analizzare intervalli di tempo di grandi dimensioni in diversi giorni con poco sforzo. Solo dopo aver identificato il timestamp di una disconnessione, è possibile passare all'analisi più dettagliata della tabella IKEdiagnosticLog per approfondire il ragionamento delle disconnessioni.

Alcuni suggerimenti per la risoluzione dei problemi:

  • Se viene visualizzato un evento di disconnessione in un'istanza del gateway, seguito da un evento di connessione nell'istanza del gateway diversa in pochi secondi, si sta esaminando un failover del gateway. Si tratta in genere di un comportamento previsto a causa della manutenzione in un'istanza del gateway. Per altre informazioni su questo comportamento, vedere Informazioni sulla ridondanza del gateway VPN di Azure.
  • Lo stesso comportamento verrà osservato se si esegue intenzionalmente una reimpostazione del gateway sul lato Azure, che causa un riavvio dell'istanza del gateway attiva. Per altre informazioni su questo comportamento, vedere Reimpostare un Gateway VPN.
  • Se viene visualizzato un evento di disconnessione in un'istanza del gateway, seguito da un evento di connessione nella stessa istanza del gateway in pochi secondi, potrebbe verificarsi un errore di rete che causa un timeout DPD o una disconnessione erroneamente inviata dal dispositivo locale.

RouteDiagnosticLog

La tabella RouteDiagnosticLog traccia l'attività per le route o le route modificate in modo statico ricevute tramite BGP.

Qui è disponibile una query di esempio come riferimento.

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

Questa query in RouteDiagnosticLog mostrerà più colonne.

Nome Descrizione
TimeGenerated timestamp di ogni evento, nel fuso orario UTC.
OperationName l'evento che si è verificato. Può essere staticRouteUpdate, BgpRouteUpdate, Bgp Connessione edEvent, BgpDisconnectedEvent.
Messaggio dettagli dell'operazione in corso.

L'output mostrerà informazioni utili sui peer BGP connessi/disconnessi e sulle route scambiate.

Esempio:

Example of BGP route exchange activity seen in RouteDiagnosticLog.

IKEDiagnosticLog

La tabella IKEDiagnosticLog offre la registrazione dettagliata del debug per IKE/IPsec. Ciò è molto utile per esaminare la risoluzione dei problemi relativi alle disconnessioni o alla mancata connessione di scenari VPN.

Qui è disponibile una query di esempio come riferimento.

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

Questa query su IKEDiagnosticLog mostrerà più colonne.

Nome Descrizione
TimeGenerated timestamp di ogni evento, nel fuso orario UTC.
RemoteIP l'indirizzo IP del dispositivo VPN locale. Negli scenari reali, è utile filtrare in base all'indirizzo IP del dispositivo locale pertinente deve essere presente più di uno.
LocalIP l'indirizzo IP del Gateway VPN risoluzione dei problemi. Negli scenari reali, è utile filtrare in base all'indirizzo IP del gateway VPN pertinente deve essere presente più di uno nella sottoscrizione.
Evento contiene un messaggio di diagnostica utile per la risoluzione dei problemi. In genere iniziano con una parola chiave e fanno riferimento alle azioni eseguite dal gateway di Azure: [edizione Standard ND] indica un evento causato da un pacchetto IPSec inviato dal gateway di Azure. [RICEVUTO] indica un evento in conseguenza di un pacchetto ricevuto dal dispositivo locale. [LOCAL] indica un'azione eseguita localmente dal gateway di Azure.

Si noti che le colonne RemoteIP, LocalIP e Event non sono presenti nell'elenco di colonne originale nel database AzureDiagnostics, ma vengono aggiunte alla query analizzando l'output della colonna "Message" per semplificare l'analisi.

Suggerimenti per la risoluzione dei problemi:

  • Per identificare l'inizio di una negoziazione IPSec, è necessario trovare il messaggio di SA_INIT iniziale. Tale messaggio può essere inviato da entrambi i lati del tunnel. Chiunque invii il primo pacchetto viene chiamato "iniziatore" nella terminologia IPsec, mentre l'altro lato diventa il "risponditore". Il primo messaggio SA_INIT è sempre quello in cui rCookie = 0.

  • Se il tunnel IPsec non riesce a stabilire, Azure continuerà a riprovare ogni pochi secondi. Per questo motivo, la risoluzione dei problemi di "down VPN" è molto utile in IKEdiagnosticLog perché non è necessario attendere un tempo specifico per riprodurre il problema. Inoltre, il fallimento in teoria sarà sempre lo stesso ogni volta che proviamo in modo da poter semplicemente ingrandire un "campione" negoziazione in errore in qualsiasi momento.

  • Il SA_INIT contiene i parametri IPSec che il peer vuole usare per questa negoziazione IPsec. Documento ufficiale
    I parametri IPsec/IKE predefiniti elencano i parametri IPsec supportati dal gateway di Azure con le impostazioni predefinite.

P2SDiagnosticLog

L'ultima tabella disponibile per la diagnostica VPN è P2SDiagnosticLog. Questa tabella traccia l'attività per Point to Site (solo i protocolli IKEv2 e OpenVPN).

Qui è disponibile una query di esempio come riferimento.

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

Questa query in P2SDiagnosticLog mostrerà più colonne.

Nome Descrizione
TimeGenerated timestamp di ogni evento, nel fuso orario UTC.
OperationName l'evento che si è verificato. Sarà P2SLogEvent.
Messaggio dettagli dell'operazione in corso.

L'output mostrerà tutte le impostazioni da punto a sito applicate dal gateway, nonché i criteri IPsec applicati.

Example of Point to Site connection seen in P2SDiagnosticLog.

Inoltre, ogni volta che un client si connetterà tramite IKEv2 o OpenVPN Point to Site, la tabella logicherà l'attività dei pacchetti, le conversazioni EAP/RADIUS e i risultati di esito positivo/negativo da parte dell'utente.

Example of EAP authentication seen in P2SDiagnosticLog.

Passaggi successivi

Per configurare gli avvisi nei log delle risorse del tunnel, vedere Configurare gli avvisi nei log delle risorse Gateway VPN.