Udostępnij za pośrednictwem


Rozwiązywanie problemów z usługą Azure VPN Gateway przy użyciu dzienników diagnostycznych

Ten artykuł pomaga zrozumieć różne dzienniki dostępne do diagnostyki usługi VPN Gateway i jak ich używać do efektywnego rozwiązywania problemów z bramą sieci VPN.

Jeśli problem z platformą Azure nie został rozwiązany w tym artykule, odwiedź fora platformy Azure w witrynach Microsoft Q & A i Stack Overflow. Możesz opublikować swój problem na tych forach lub opublikować go na @AzureSupport na Twitterze. Możesz również przesłać żądanie pomoc techniczna platformy Azure. Aby przesłać wniosek o pomoc techniczną, na stronie pomoc techniczna platformy Azure wybierz pozycję Uzyskaj pomoc techniczną.

Na platformie Azure są dostępne następujące dzienniki:

  • GatewayDiagnosticLog
  • TunnelDiagnosticLog
  • RouteDiagnosticLog
  • IKEDiagnosticLog
  • P2SDiagnosticLog

W przypadku bram opartych na zasadach dostępne są tylko bramy GatewayDiagnosticLog i RouteDiagnosticLog .

Wszystkie dzienniki usługi VPN Gateway można znaleźć w temacie Dokumentacja danych monitorowania usługi Azure VPN Gateway

Aby skonfigurować zdarzenia dziennika diagnostycznego z usługi Azure VPN Gateway przy użyciu usługi Azure Log Analytics, zobacz Tworzenie ustawień diagnostycznych w usłudze Azure Monitor.

GatewayDiagnosticLog

Zmiany konfiguracji są poddawane inspekcji w tabeli GatewayDiagnosticLog . Może upłynąć kilka minut, zanim zmiany zostaną odzwierciedlone w dziennikach.

W tym miejscu masz przykładowe zapytanie jako odwołanie.

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

To zapytanie w usłudze GatewayDiagnosticLog pokazuje wiele kolumn.

Nazwa/nazwisko Opis
TimeGenerated sygnatura czasowa każdego zdarzenia w strefie czasowej UTC.
OperationName zdarzenie, które się stało. Może to być dowolny element SetGatewayConfiguration, SetConnectionConfiguration, HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration.
Wiadomość szczegółowe informacje o tym, co się dzieje, oraz wyświetla listę wyników zakończonych powodzeniem/niepowodzeniem.

W poniższym przykładzie pokazano działanie zarejestrowane po zastosowaniu nowej konfiguracji:

Przykład operacji ustawiania bramy widocznej w dzienniku GatewayDiagnosticLog.

Zwróć uwagę, że konfiguracja SetGatewayConfiguration jest rejestrowana za każdym razem, gdy konfiguracja jest modyfikowana zarówno w bramie sieci VPN, jak i w bramie sieci lokalnej.

Porównanie wyników z tabeli GatewayDiagnosticLog z wynikami tabeli TunnelDiagnosticLog może pomóc w ustaleniu, czy podczas zmiany konfiguracji lub działania konserwacji wystąpił błąd łączności tunelu. Jeśli tak, stanowi ona znaczące wskazanie na potencjalną główną przyczynę.

TunnelDiagnosticLog

Tabela TunnelDiagnosticLog jest przydatna do sprawdzania historycznych stanów łączności tunelu.

W tym miejscu masz przykładowe zapytanie jako odwołanie.

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

To zapytanie w pliku TunnelDiagnosticLog pokazuje wiele kolumn.

Nazwa/nazwisko Opis
TimeGenerated sygnatura czasowa każdego zdarzenia w strefie czasowej UTC.
OperationName zdarzenie, które się stało. Może to być tunnelConnected lub TunnelDisconnected.
remoteIP_s adres IP lokalnego urządzenia sieci VPN. W rzeczywistych scenariuszach warto filtrować według adresu IP odpowiedniego urządzenia lokalnego, jeśli istnieje więcej niż jeden.
Instance_s wystąpienie roli bramy, które wyzwoliło zdarzenie. Może to być GatewayTenantWorker_IN_0 lub GatewayTenantWorker_IN_1, które są nazwami dwóch wystąpień bramy.
Zasób wskazuje nazwę bramy sieci VPN.
ResourceGroup wskazuje grupę zasobów, w której znajduje się brama.

Przykładowe wyjście:

Przykład zdarzenia połączonego tunelu widocznego w pliku TunnelDiagnosticLog.

Narzędzie TunnelDiagnosticLog jest przydatne do rozwiązywania problemów z przeszłymi zdarzeniami dotyczącymi nieoczekiwanych rozłączeń sieci VPN. Jego lekki charakter oferuje możliwość analizowania dużych zakresów czasu w ciągu kilku dni z niewielkim nakładem pracy. Dopiero po zidentyfikowaniu sygnatury czasowej rozłączenia można przełączyć się na bardziej szczegółową analizę tabeli IKEdiagnosticLog , aby dokładniej zapoznać się z przyczynami rozłączeń, są powiązane z protokołem IPsec.

Niektóre porady dotyczące rozwiązywania problemów:

  • Jeśli zauważysz zdarzenie rozłączenia w jednym wystąpieniu bramy, a następnie zdarzenie połączenia w innym wystąpieniu bramy w ciągu kilku sekund, wskazuje tryb failover bramy. Takie zdarzenie zwykle występuje z powodu konserwacji wystąpienia bramy. Aby dowiedzieć się więcej na temat tego zachowania, zobacz About Azure VPN Gateway redundancy (Informacje o nadmiarowości bramy sieci VPN platformy Azure).
  • To samo zachowanie jest obserwowane, jeśli celowo uruchamiasz resetowanie bramy po stronie platformy Azure — co powoduje ponowne uruchomienie aktywnego wystąpienia bramy. Aby dowiedzieć się więcej o tym zachowaniu, zobacz Resetowanie bramy sieci VPN.
  • Jeśli w jednym wystąpieniu bramy zostanie wyświetlone zdarzenie rozłączenia, a następnie zdarzenie połączenia w tym samym wystąpieniu bramy w ciągu kilku sekund, może być widoczne usterki sieci powodujące przekroczenie limitu czasu usługi DPD lub błędne rozłączenie wysyłane przez urządzenie lokalne.

RouteDiagnosticLog

Tabela RouteDiagnosticLog śledzi działanie statycznie zmodyfikowanych tras lub tras odebranych za pośrednictwem protokołu BGP.

W tym miejscu masz przykładowe zapytanie jako odwołanie.

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

To zapytanie w usłudze RouteDiagnosticLog pokazuje wiele kolumn.

Nazwa/nazwisko Opis
TimeGenerated sygnatura czasowa każdego zdarzenia w strefie czasowej UTC.
OperationName zdarzenie, które się stało. Może to być jeden z elementów StaticRouteUpdate, BgpRouteUpdate, BgpConnectedEvent, BgpDisconnectedEvent.
Wiadomość szczegółowe informacje o tym, jaka operacja się dzieje.

Dane wyjściowe zawierają przydatne informacje o połączonych/rozłączonych elementach równorzędnych BGP i wymienianych trasach.

Przykład:

Przykład działania wymiany tras protokołu BGP widoczne w elemecie RouteDiagnosticLog.

IKEDiagnosticLog

Tabela IKEDiagnosticLog oferuje pełne rejestrowanie debugowania dla protokołu IKE/IPsec. Jest to przydatne do przejrzenia podczas rozwiązywania problemów z rozłączeniami lub niepowodzenia nawiązywania połączenia ze scenariuszami sieci VPN.

W tym miejscu masz przykładowe zapytanie jako odwołanie.

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

To zapytanie w dzienniku IKEDiagnosticLog pokazuje wiele kolumn.

Nazwa/nazwisko Opis
TimeGenerated sygnatura czasowa każdego zdarzenia w strefie czasowej UTC.
RemoteIP adres IP lokalnego urządzenia sieci VPN. W rzeczywistych scenariuszach warto filtrować według adresu IP odpowiedniego urządzenia lokalnego, jeśli istnieje więcej niż jeden.
LocalIP adres IP bramy sieci VPN, która jest rozwiązywana. W rzeczywistych scenariuszach warto filtrować według adresu IP odpowiedniej bramy sieci VPN, jeśli w twojej subskrypcji znajduje się więcej niż jeden.
Zdarzenie zawiera komunikat diagnostyczny przydatny do rozwiązywania problemów. Zazwyczaj zaczynają się od słowa kluczowego i odwołują się do akcji wykonywanych przez usługę Azure Gateway: [SEND] wskazuje zdarzenie spowodowane przez pakiet IPSec wysyłany przez usługę Azure Gateway. [ODEBRANO] wskazuje zdarzenie w wyniku pakietu odebranego z urządzenia lokalnego. [LOCAL] wskazuje akcję podjętą lokalnie przez usługę Azure Gateway.

Zwróć uwagę, że kolumny RemoteIP, LocalIP i Event nie znajdują się na oryginalnej liście kolumn w bazie danych AzureDiagnostics, ale są dodawane do zapytania, analizując dane wyjściowe kolumny "Message", aby uprościć analizę.

Porady dotyczące rozwiązywania problemów:

  • Aby zidentyfikować początek negocjacji protokołu IPSec, należy znaleźć początkowy komunikat SA_INIT. Taki komunikat można wysłać po obu stronach tunelu. Każdy, kto wysyła pierwszy pakiet, jest nazywany "inicjatorem" w terminologii IPsec, podczas gdy druga strona staje się "osoba odpowiadająca". Pierwszy komunikat SA_INIT jest zawsze taki, w którym rCookie = 0.

  • Jeśli nie można ustanowić tunelu IPsec, platforma Azure będzie ponawiać próby co kilka sekund. Z tego powodu rozwiązywanie problemów z "wyłączoną siecią VPN" jest wygodne w dzienniku IKEdiagnosticLog, ponieważ nie trzeba czekać na określony czas, aby odtworzyć problem. Ponadto awaria będzie zawsze taka sama za każdym razem, gdy spróbujemy, aby po prostu powiększyć jedną "próbkę" negocjacji zakończonych niepowodzeniem w dowolnym momencie.

  • SA_INIT zawiera parametry protokołu IPSec, których element równorzędny chce użyć do negocjacji protokołu IPsec. Oficjalny dokument
    Domyślne parametry protokołu IPsec/IKE wyświetla listę parametrów protokołu IPsec obsługiwanych przez usługę Azure Gateway z ustawieniami domyślnymi.

P2SDiagnosticLog

Ostatnia dostępna tabela diagnostyki sieci VPN to P2SDiagnosticLog. Ta tabela śledzi działanie dla połączeń punkt-lokacja (tylko protokoły IKEv2 i OpenVPN).

W tym miejscu masz przykładowe zapytanie jako odwołanie.

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

To zapytanie w dzienniku P2SDiagnosticLog wyświetli wiele kolumn.

Nazwa/nazwisko Opis
TimeGenerated sygnatura czasowa każdego zdarzenia w strefie czasowej UTC.
OperationName zdarzenie, które się stało. Będzie to P2SLogEvent.
Wiadomość szczegółowe informacje o tym, jaka operacja się dzieje.

Dane wyjściowe zawierają wszystkie ustawienia punkt-lokacja, które zostały zastosowane przez bramę, oraz zasady protokołu IPsec.

Przykład połączenia punkt-lokacja widocznego w dzienniku P2SDiagnosticLog.

Ponadto, gdy klient nawiązuje połączenie przy użyciu uwierzytelniania OpenVPN i Microsoft Entra ID dla punkt-lokacja, tabela rejestruje aktywność pakietów w następujący sposób:

[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

Uwaga

W dzienniku punkt-lokacja nazwa użytkownika jest częściowo zasłonięta. Pierwszy oktet adresu IP użytkownika klienta jest zastępowany wartością 0.

Następne kroki

Aby skonfigurować alerty dotyczące dzienników zasobów tunelu, zobacz Konfigurowanie alertów w dziennikach zasobów usługi VPN Gateway.