Řešení potíží s Azure VPN Gateway pomocí diagnostických protokolů
Tento článek vám pomůže pochopit různé protokoly dostupné pro diagnostiku služby VPN Gateway a jejich použití k efektivnímu řešení potíží s bránou VPN.
Pokud váš problém s Azure není v tomto článku vyřešený, navštivte fóra Azure na webu Microsoft Q &A a Stack Overflow. Svůj problém můžete publikovat na těchto fórech nebo publikovat na @AzureSupport na Twitteru. Můžete také odeslat podpora Azure žádost. Pokud chcete odeslat žádost o podporu, na stránce podpora Azure vyberte Získat podporu.
V Azure jsou k dispozici následující protokoly* :
Název | Popis |
---|---|
GatewayDiagnosticLog | Obsahuje diagnostické protokoly pro události konfigurace brány, primární změny a události údržby. |
TunnelDiagnosticLog | Obsahuje události změny stavu tunelu. Události připojení nebo odpojení tunelu mají souhrnný důvod změny stavu, pokud je to možné. |
RouteDiagnosticLog | Protokoluje změny statických tras a událostí protokolu BGP, ke kterým dochází v bráně. |
IKEDiagnosticLog | Protokoluje řídicí zprávy a události protokolu IKE v bráně. |
P2SDiagnosticLog | Protokoluje zprávy a události řízení typu point-to-site v bráně. |
*Pro brány založené na zásadách jsou k dispozici pouze brányDiagnosticLog a RouteDiagnosticLog.
Všimněte si, že v těchto tabulkách je k dispozici několik sloupců. V tomto článku prezentujeme pouze ty nejrelevantní pro snadnější spotřebu protokolů.
Nastavení protokolování
Pomocí tohoto postupu se dozvíte, jak nastavit události diagnostického protokolu ze služby Azure VPN Gateway pomocí Azure Log Analytics:
Pomocí tohoto článku vytvořte pracovní prostor služby Log Analytics.
V okně Nastavení diagnostiky monitorování > vyhledejte bránu VPN.
- Vyberte bránu a klikněte na Přidat nastavení diagnostiky.
- Vyplňte název nastavení diagnostiky, vyberte všechny kategorie protokolů a zvolte pracovní prostor služby Log Analytics.
Poznámka:
Počáteční zobrazení dat může trvat několik hodin.
GatewayDiagnosticLog
Změny konfigurace jsou auditovány v tabulce GatewayDiagnosticLog . Než se změny, které provedete, projeví v protokolech, může to několik minut trvat.
Tady máte ukázkový dotaz jako referenci.
AzureDiagnostics
| where Category == "GatewayDiagnosticLog"
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup
| sort by TimeGenerated asc
Tento dotaz na GatewayDiagnosticLog zobrazí více sloupců.
Název | Popis |
---|---|
TimeGenerated | časové razítko každé události v časovém pásmu UTC. |
Název operace | událost, která se stala. Může to být buď SetGatewayConfiguration, Set Připojení ionConfiguration, HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration. |
Message | podrobnosti o tom, k jaké operaci dochází, a uvádí výsledky úspěšných a neúspěšných selhání. |
Následující příklad ukazuje aktivitu protokolovanou při použití nové konfigurace:
Všimněte si, že SetGatewayConfiguration se protokoluje při každé změně konfigurace jak ve službě VPN Gateway, tak v bráně místní sítě. Křížový odkaz na výsledky z tabulky GatewayDiagnosticLog s tabulkami TunnelDiagnosticLog nám může pomoct určit, jestli došlo k selhání připojení tunelu ve stejnou dobu jako při změně konfigurace nebo jestli došlo k údržbě. Pokud ano, máme skvělý ukazatel na možnou původní příčinu.
TunnelDiagnosticLog
Tabulka TunnelDiagnosticLog je velmi užitečná ke kontrole historických stavů připojení tunelu.
Tady máte ukázkový dotaz jako referenci.
AzureDiagnostics
| where Category == "TunnelDiagnosticLog"
//| where remoteIP_s == "<REMOTE IP OF TUNNEL>"
| project TimeGenerated, OperationName, remoteIP_s, instance_s, Resource, ResourceGroup
| sort by TimeGenerated asc
Tento dotaz na TunnelDiagnosticLog zobrazí více sloupců.
Název | Popis |
---|---|
TimeGenerated | časové razítko každé události v časovém pásmu UTC. |
Název operace | událost, která se stala. Může to být tunel Připojení ed nebo TunnelDisconnected. |
remoteIP_s | IP adresa místního zařízení VPN. V reálných scénářích je užitečné filtrovat podle IP adresy příslušného místního zařízení více než jedno. |
Instance_s | instance role brány, která událost aktivovala. Může to být GatewayTenantWorker_IN_0 nebo GatewayTenantWorker_IN_1, což jsou názvy dvou instancí brány. |
Prostředek | označuje název brány VPN. |
ResourceGroup | označuje skupinu prostředků, ve které je brána. |
Příklad výstupu:
TunnelDiagnosticLog je velmi užitečný k řešení potíží s minulými událostmi o neočekávaných odpojení vpn. Jeho lehká povaha nabízí možnost analyzovat velké časové rozsahy za několik dní s malým úsilím. Až po identifikaci časového razítka odpojení můžete přepnout na podrobnější analýzu tabulky IKEdiagnosticLog , abyste se podrobněji podívali na odůvodnění odpojení, musí souviset s protokolem IPsec.
Některé tipy pro řešení potíží:
- Pokud se v jedné instanci brány zobrazí událost odpojení následovaná událostí připojení v jiné instanci brány za několik sekund, díváte se na převzetí služeb při selhání brány. Obvykle se jedná o očekávané chování způsobené údržbou instance brány. Další informace o tomto chování najdete v tématu O redundanci služby Azure VPN Gateway.
- Stejné chování se projeví, pokud záměrně spustíte resetování brány na straně Azure, což způsobí restartování aktivní instance brány. Další informace o tomto chování najdete v tématu Resetování brány VPN Gateway.
- Pokud se v jedné instanci brány zobrazí událost odpojení následovaná událostí připojení ve stejné instanci brány za několik sekund, možná se díváte na chybu sítě, která způsobuje vypršení časového limitu DPD nebo chybné odpojení odesílané místním zařízením.
RouteDiagnosticLog
Tabulka RouteDiagnosticLog sleduje aktivitu pro staticky upravené trasy nebo trasy přijaté přes protokol BGP.
Tady máte ukázkový dotaz jako referenci.
AzureDiagnostics
| where Category == "RouteDiagnosticLog"
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup
Tento dotaz na RouteDiagnosticLog zobrazí více sloupců.
Název | Popis |
---|---|
TimeGenerated | časové razítko každé události v časovém pásmu UTC. |
Název operace | událost, která se stala. Může to být buď StaticRouteUpdate, BgpRouteUpdate, Bgp Připojení edEvent, BgpDisconnectedEvent. |
Message | podrobnosti o tom, co se děje. |
Výstup zobrazí užitečné informace o partnerských vztazích protokolu BGP připojených nebo odpojených a vyměňovaných trasách.
Příklad:
IKEDiagnosticLog
Tabulka IKEDiagnosticLog nabízí podrobné protokolování ladění pro protokol IKE/IPsec. To je velmi užitečné při řešení potíží s odpojením nebo selháním připojení scénářů VPN.
Tady máte ukázkový dotaz jako referenci.
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
Tento dotaz na IKEDiagnosticLog zobrazí více sloupců.
Název | Popis |
---|---|
TimeGenerated | časové razítko každé události v časovém pásmu UTC. |
RemoteIP | IP adresa místního zařízení VPN. V reálných scénářích je užitečné filtrovat podle IP adresy příslušného místního zařízení více než jedno. |
LocalIP | IP adresu služby VPN Gateway řešíme. Ve scénářích z reálného světa je užitečné filtrovat podle IP adresy příslušné brány VPN, ve vašem předplatném bude více než jedno. |
Událost | obsahuje diagnostickou zprávu, která je užitečná pro řešení potíží. Obvykle začínají klíčovým slovem a odkazují na akce prováděné službou Azure Gateway: [SEND] označuje událost způsobenou paketem IPSec odesílaným službou Azure Gateway. [PŘIJATO] označuje událost v důsledku paketu přijatého z místního zařízení. [LOCAL] označuje akci prováděnou místně službou Azure Gateway. |
Všimněte si, že sloupce RemoteIP, LocalIP a Event nejsou k dispozici v původním seznamu sloupců v databázi AzureDiagnostics, ale přidají se do dotazu parsováním výstupu sloupce Zpráva, aby se zjednodušila jeho analýza.
Tipy pro řešení potíží:
Pokud chcete zjistit začátek vyjednávání protokolu IPSec, musíte najít počáteční SA_INIT zprávu. Taková zpráva by mohla být odeslána na obou stranách tunelu. Kdo podle toho, že první paket odešle, se v terminologii protokolu IPsec nazývá "iniciátor", zatímco druhá strana se stane "respondérem". První SA_INIT zpráva je vždy ta, kde rCookie = 0.
Pokud se tunel IPsec nepodaří navázat, Azure se bude opakovat každých několik sekund. Z tohoto důvodu je řešení potíží s chybou VPN velmi pohodlné u protokolu IKEdiagnosticLog, protože nemusíte čekat na konkrétní dobu, než se problém reprodukuje. Selhání bude teoreticky vždy stejné pokaždé, když se pokusíme, takže byste mohli kdykoliv přiblížit jeden "vzorek" neúspěšné vyjednávání.
SA_INIT obsahuje parametry PROTOKOLU IPSec, které partnerský vztah chce použít pro toto vyjednávání protokolu IPsec. Oficiální dokument
Výchozí parametry IPsec/IKE uvádějí parametry protokolu IPsec podporované službou Azure Gateway s výchozím nastavením.
P2SDiagnosticLog
Poslední dostupná tabulka pro diagnostiku sítě VPN je P2SDiagnosticLog. Tato tabulka sleduje aktivitu pro point-to-site (pouze protokoly IKEv2 a OpenVPN).
Tady máte ukázkový dotaz jako referenci.
AzureDiagnostics
| where Category == "P2SDiagnosticLog"
| project TimeGenerated, OperationName, Message, Resource, ResourceGroup
Tento dotaz na P2SDiagnosticLog zobrazí více sloupců.
Název | Popis |
---|---|
TimeGenerated | časové razítko každé události v časovém pásmu UTC. |
Název operace | událost, která se stala. Bude P2SLogEvent. |
Message | podrobnosti o tom, co se děje. |
Ve výstupu se zobrazí všechna nastavení typu point-to-site, která brána použila, a také zavedené zásady protokolu IPsec.
Kdykoli se klient připojí přes protokol IKEv2 nebo OpenVPN Point-to-Site, bude tabulka protokolovat aktivitu paketů, konverzace protokolu EAP/RADIUS a výsledky úspěšných/selhání podle uživatele.
Další kroky
Pokud chcete nakonfigurovat upozornění na protokoly prostředků tunelu, přečtěte si téma Nastavení upozornění na protokoly prostředků služby VPN Gateway.