Memecahkan masalah Azure VPN Gateway menggunakan log diagnostik

Artikel ini membantu memahami berbagai log yang tersedia untuk diagnostik VPN Gateway dan cara menggunakannya untuk memecahkan masalah VPN gateway secara efektif.

Jika masalah Azure Anda tidak diatasi dalam artikel ini, kunjungi forum Azure di Microsoft Q & A dan Stack Overflow. Anda dapat memposting masalah Anda di forum ini, atau memposting ke @AzureSupport di Twitter. Anda juga dapat mengirimkan permintaan dukungan Azure. Untuk mengirimkan permintaan dukungan, pada halaman dukungan Azure, pilih Dapatkan dukungan.

Log berikut tersedia* di Azure:

Nama Keterangan
GatewayDiagnosticLog Berisi log diagnostik untuk kejadian konfigurasi gateway, perubahan utama, dan kejadian pemeliharaan.
TunnelDiagnosticLog Berisi peristiwa perubahan status terowongan. Kejadian sambung/putus terowongan memiliki alasan ringkas untuk perubahan status jika berlaku.
RouteDiagnosticLog Mencatat perubahan pada rute statis dan kejadian BGP yang terjadi di gateway.
IKEDiagnosticLog Mencatat pesan kontrol dan kejadian IKE di gateway.
P2SDiagnosticLog Mencatat pesan dan peristiwa kontrol dari titik ke situs di gateway.

*untuk gateway Berbasis Kebijakan, hanya GatewayDiagnosticLog dan RouteDiagnosticLog yang tersedia.

Perhatikan bahwa ada beberapa kolom yang tersedia dalam tabel ini. Dalam artikel ini, kami hanya menyajikan yang paling relevan untuk konsumsi log yang lebih mudah.

Menyiapkan pengelogan

Ikuti prosedur ini untuk mempelajari cara menyiapkan peristiwa log diagnostik dari Azure VPN Gateway menggunakan Azure Log Analytics:

  1. Buat Ruang Kerja Analitik Log menggunakan artikel ini.

  2. Temukan gateway VPN Anda di bilah pengaturan Diagnostik Monitor > .

Screenshot of the Diagnostic settings blade.

  1. Pilih gateway dan klik "Tambahkan Pengaturan Diagnostik".

Screenshot of the Add diagnostic setting interface.

  1. Isi nama pengaturan diagnostik, pilih semua kategori log dan pilih Ruang Kerja Analitik Log.

Detailed screenshot of the Add diagnostic setting properties.

Catatan

Mungkin perlu waktu beberapa jam agar data muncul pada awalnya.

GatewayDiagnosticLog

Perubahan konfigurasi diaudit dalam tabel GatewayDiagnosticLog. Proses ini bisa memakan waktu beberapa menit sebelum perubahan yang Anda jalankan tercermin dalam log.

Di sini Anda memiliki contoh kueri sebagai rujukan.

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

Kueri di GatewayDiagnosticLog ini akan memperlihatkan kepada Anda beberapa kolom.

Nama Keterangan
TimeGenerated tanda waktu setiap kejadian, dalam zona waktu UTC.
OperationName kejadian yang terjadi. Ini bisa berupa SetGatewayConfiguration, SetConnectionConfiguration, HostMaintenanceEvent, GatewayTenantPrimaryChanged, MigrateCustomerSubscription, GatewayResourceMove, ValidateGatewayConfiguration.
Pesan detail operasi apa yang terjadi, dan mencantumkan yang berhasil/gagal.

Contoh di bawah ini menunjukkan aktivitas yang dicatat ketika konfigurasi baru diterapkan:

Example of a Set Gateway Operation seen in GatewayDiagnosticLog.

Perhatikan bahwa SetGatewayConfiguration akan dicatat setiap kali beberapa konfigurasi dimodifikasi baik di VPN Gateway atau Gateway Jaringan Lokal. Memeriksa silang hasil dari tabel GatewayDiagnosticLog dengan tabel TunnelDiagnosticLog dapat membantu kami menentukan apakah kegagalan konektivitas terowongan telah dimulai pada saat yang sama ketika konfigurasi diubah, atau saat pemeliharaan. Jika ya, kita memiliki penunjuk besar menuju kemungkinan akar penyebabnya.

TunnelDiagnosticLog

Tabel TunnelDiagnosticLog sangat berguna untuk memeriksa riwayat status konektivitas terowongan.

Di sini Anda memiliki contoh kueri sebagai rujukan.

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

Kueri di GatewayDiagnosticLog ini akan memperlihatkan kepada Anda beberapa kolom.

Nama Keterangan
TimeGenerated tanda waktu setiap kejadian, dalam zona waktu UTC.
OperationName kejadian yang terjadi. Ini dapat berupa TunnelConnected atau TunnelDisconnected.
remoteIP_s alamat IP perangkat VPN lokal. Dalam skenario dunia nyata, berguna untuk menyaring lebih dari satu alamat IP perangkat lokal yang relevan.
Instance_s instans peran gateway yang memicu peristiwa tersebut. Ini bisa berupa GatewayTenantWorker_IN_0 atau GatewayTenantWorker_IN_1, yang merupakan nama dari dua instans gateway.
Sumber daya menunjukkan nama gateway VPN.
ResourceGroup menunjukkan grup sumber daya tempat gateway berada.

Contoh output:

Example of a Tunnel Connected Event seen in TunnelDiagnosticLog.

TunnelDiagnosticLog sangat berguna untuk memecahkan masalah peristiwa sebelumnya tentang pemutusan VPN tidak terduga. Sifatnya yang ringan menawarkan kemungkinan untuk menganalisis rentang waktu besar selama beberapa hari dengan sedikit usaha. Setelah mengenali tanda waktu pemutusan, Anda dapat beralih ke analisis yang lebih rinci dari tabel IKEdiagnosticLog untuk menggali lebih dalam alasan pemutusan hubungan yang terkait dengan IPsec.

Tips pemecahan masalah:

  • Jika Anda melihat pemutusan sambungan pada satu instans gateway, diikuti dengan peristiwa koneksi pada instans gateway berbeda dalam beberapa detik, Anda sedang melihat kegagalan gateway. Ini biasanya merupakan perilaku yang sudah diperkirakan akibat pemeliharaan pada instans gateway. Untuk mempelajari selengkapnya tentang perilaku ini, lihat Tentang redundansi gateway Azure VPN.
  • Perilaku yang sama akan diamati jika Anda sengaja menjalankan Gateway Reset di sisi Azure - yang menyebabkan reboot instans gateway aktif. Untuk mempelajari selengkapnya tentang perilaku ini, lihat Mereset VPN Gateway.
  • Jika Anda melihat pemutusan pada satu instans gateway, diikuti oleh peristiwa koneksi pada instans gateway yang sama dalam beberapa detik, Anda mungkin melihat kesalahan jaringan yang menyebabkan DPD timeout, atau pemutusan yang salah dikirim oleh perangkat lokal.

RouteDiagnosticLog

Tabel RouteDiagnosticLog melacak aktivitas untuk rute yang dimodifikasi secara statis atau rute yang diterima melalui BGP.

Di sini Anda memiliki contoh kueri sebagai rujukan.

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

Kueri di RouteDiagnosticLog ini akan memperlihatkan kepada Anda beberapa kolom.

Nama Keterangan
TimeGenerated tanda waktu setiap kejadian, dalam zona waktu UTC.
OperationName kejadian yang terjadi. Dapat berupa StaticRouteUpdate, BgpRouteUpdate, BgpConnectedEvent, BgpDisconnectedEvent.
Pesan detail operasi apa yang terjadi.

Output akan menampilkan informasi berguna tentang rekan-rekan BGP yang terhubung/terputus dan rute ditukar.

Contoh:

Example of BGP route exchange activity seen in RouteDiagnosticLog.

IKEDiagnosticLog

Tabel IKEDiagnosticLog menawarkan pencatatan debug verbose untuk IKE/IPsec. Ini sangat berguna untuk ditinjau ketika memecahkan masalah pemutusan, atau gagal menghubungkan skenario VPN.

Di sini Anda memiliki contoh kueri sebagai rujukan.

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

Kueri di IKEDiagnosticLog ini akan memperlihatkan kepada Anda beberapa kolom.

Nama Keterangan
TimeGenerated tanda waktu setiap kejadian, dalam zona waktu UTC.
RemoteIP alamat IP perangkat VPN lokal. Dalam skenario dunia nyata, berguna untuk menyaring lebih dari satu alamat IP perangkat lokal yang relevan.
LocalIP alamat IP VPN Gateway yang kita pecahkan masalahnya. Dalam skenario dunia nyata, berguna untuk menyaring dengan alamat IP dari VPN gateway yang relevan bila ada lebih dari satu dalam langganan Anda.
Kejadian berisi pesan diagnostik yang berguna untuk pemecahan masalah. Mereka biasanya mulai dengan kata kunci dan merujuk pada tindakan yang dilakukan oleh Azure Gateway: [SEND] menunjukkan kejadian yang disebabkan oleh paket IPSec yang dikirim oleh Azure Gateway. [RECEIVED] menunjukkan kejadian sebagai konsekuensi dari paket yang diterima perangkat lokal. [LOCAL] mengindikasikan tindakan yang diambil secara lokal oleh Azure Gateway.

Perhatikan bagaimana kolom RemoteIP, LocalIP, dan Event tidak ada dalam daftar kolom asli pada database AzureDiagnostics, tetapi ditambahkan ke kueri dengan menguraikan output kolom "Pesan" untuk menyederhanakan analisisnya.

Tips pemecahan masalah:

  • Untuk mengenali dimulainya negosiasi IPSec, Anda perlu menemukan pesan SA_INIT awal. Pesan seperti itu bisa dikirim oleh kedua sisi terowongan. Siapa pun yang mengirim paket pertama disebut "inisiator" dalam terminologi IPsec, sementara sisi lain menjadi "responder". Pesan SA_INIT pertama selalu bernilai rCookie = 0.

  • Jika terowongan IPsec gagal dibangun, Azure akan terus mencoba kembali setiap beberapa detik. Untuk alasan ini, pemecahan masalah "VPN tidak berfungsi" sangat mudah di IKEdiagnosticLog karena Anda tidak perlu menunggu waktu tertentu untuk mereproduksi masalah. Juga, kegagalan secara teori akan selalu sama setiap kali kita mencoba sehingga Anda hanya bisa memperbesar ke dalam satu "sampel" negosiasi gagal kapan saja.

  • SA_INIT berisi parameter IPSec yang ingin digunakan serekan untuk negosiasi IPsec ini. Dokumen resmi
    Parameter IPsec/IKE default mencantumkan parameter IPsec yang didukung oleh Azure Gateway dengan pengaturan default.

P2SDiagnosticLog

Tabel terakhir yang tersedia untuk diagnostik VPN adalah P2SDiagnosticLog. Tabel ini melacak aktivitas Point to Site (hanya protokol OpenVPN dan IKEv2).

Di sini Anda memiliki contoh kueri sebagai rujukan.

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

Kueri di P2SDiagnosticLog ini akan memperlihatkan kepada Anda beberapa kolom.

Nama Keterangan
TimeGenerated tanda waktu setiap kejadian, dalam zona waktu UTC.
OperationName kejadian yang terjadi. Akan berupa P2SLogEvent.
Pesan detail operasi apa yang terjadi.

Output akan menampilkan semua pengaturan Titik ke Situs yang telah diterapkan gateway, serta kebijakan IPsec di tempat.

Example of Point to Site connection seen in P2SDiagnosticLog.

Selain itu, setiap kali klien akan terhubung melalui IKEv2 atau OpenVPN Titik ke Situs, tabel akan mencatat aktivitas paket, percakapan EAP/RADIUS dan yang berhasil/gagal oleh pengguna.

Example of EAP authentication seen in P2SDiagnosticLog.

Langkah berikutnya

Untuk mengonfigurasi peringatan pada log sumber daya terowongan, baca Menyiapkan peringatan pada log sumber daya VPN Gateway.