Mengonfigurasi pengambilan paket untuk gateway VPN

Masalah terkait konektivitas dan performa seringkali rumit. Butuh waktu dan upaya yang signifikan hanya untuk mempersempit penyebab masalah. Pengambilan paket dapat membantu Anda mempersempit cakupan masalah ke bagian jaringan tertentu. Hal ini dapat membantu Anda menentukan apakah masalahnya ada di sisi pelanggan jaringan, sisi Azure jaringan, atau di suatu tempat di antaranya. Setelah Anda mempersempit masalah, lebih efisien untuk men-debug dan mengambil tindakan perbaikan.

Tersedia beberapa alat pengambilan paket yang umum tersedia. Pengambilan paket yang relevan dengan alat-alat ini bisa jadi rumit, terutama dalam skenario lalu lintas volume tinggi. Kemampuan pemfilteran yang disediakan oleh pengambilan paket Azure VPN Gateway adalah pembeda utama. Anda dapat menggunakan pengambilan paket VPN Gateway dan alat pengambilan paket yang umum tersedia.

Tentang pengambilan paket untuk VPN Gateway

Anda dapat menjalankan pengambilan paket VPN Gateway di gateway, atau pada koneksi tertentu, tergantung pada kebutuhan Anda. Anda juga dapat menjalankan pengambilan paket di beberapa terowongan secara bersamaan. Anda dapat menangkap lalu lintas satu arah atau dua arah, lalu lintas IKE dan ESP, dan paket dalam serta pemfilteran di gateway VPN.

Sangat berguna untuk menggunakan filter lima tuple (subnet sumber, subnet tujuan, port sumber, port tujuan, protokol) dan bendera TCP (SYN, ACK, FIN, URG, PSH, RST) saat Anda mengisolasi masalah dalam lalu lintas volume tinggi.

Contoh JSON dan skema JSON berikut memberikan penjelasan tentang setiap properti. Berikut adalah beberapa batasan yang perlu diingat ketika Anda menjalankan pengambilan paket:

  • Dalam skema yang diperlihatkan di sini, filter adalah array, tetapi saat ini hanya satu filter yang dapat digunakan secara bersamaan.
  • Anda tidak dapat menjalankan beberapa tangkapan paket gateway-wide secara bersamaan.
  • Anda tidak dapat menjalankan beberapa pengambilan paket pada satu koneksi secara bersamaan. Anda dapat menjalankan beberapa pengambilan paket pada koneksi yang berbeda secara bersamaan.
  • Maksimal lima pengambilan paket dapat dijalankan secara paralel per gateway. Pengambilan paket ini dapat menjadi kombinasi dari pengambilan paket di seluruh gateway dan pengambilan paket per koneksi.
  • Unit MaxPacketBufferSize adalah byte dan MaxFileSize adalah megabyte

Catatan

Atur opsi CaptureSingleDirectionTrafficOnly ke false jika Anda ingin menangkap paket dalam dan luar.

Contoh JSON

{
  "TracingFlags": 11,
  "MaxPacketBufferSize": 120,
  "MaxFileSize": 200,
  "Filters": [
    {
      "SourceSubnets": [
        "20.1.1.0/24"
      ],
      "DestinationSubnets": [
        "10.1.1.0/24"
      ],
      "SourcePort": [
        500
      ],
      "DestinationPort": [
        4500
      ],
      "Protocol": [
        6
      ],
      "TcpFlags": 16,
      "CaptureSingleDirectionTrafficOnly": true
    }
  ]
}

Skema JSON

{
    "type": "object",
    "title": "The Root Schema",
    "description": "The root schema input JSON filter for packet capture",
    "default": {},
    "additionalProperties": true,
    "required": [
        "TracingFlags",
        "MaxPacketBufferSize",
        "MaxFileSize",
        "Filters"
    ],
    "properties": {
        "TracingFlags": {
            "$id": "#/properties/TracingFlags",
            "type": "integer",
            "title": "The Tracingflags Schema",
            "description": "Tracing flags that customer can pass to define which packets are to be captured. Supported values are CaptureESP = 1, CaptureIKE = 2, CaptureOVPN = 8. The final value is OR of the bits.",
            "default": 11,
            "examples": [
                11
            ]
        },
        "MaxPacketBufferSize": {
            "$id": "#/properties/MaxPacketBufferSize",
            "type": "integer",
            "title": "The Maxpacketbuffersize Schema",
            "description": "Maximum buffer size of each packet. The capture will only contain contents of each packet truncated to this size.",
            "default": 120,
            "examples": [
                120
            ]
        },
        "MaxFileSize": {
            "$id": "#/properties/MaxFileSize",
            "type": "integer",
            "title": "The Maxfilesize Schema",
            "description": "Maximum file size of the packet capture file. It is a circular buffer.",
            "default": 100,
            "examples": [
                100
            ]
        },
        "Filters": {
            "$id": "#/properties/Filters",
            "type": "array",
            "title": "The Filters Schema",
            "description": "An array of filters that can be passed to filter inner ESP traffic.",
            "default": [],
            "examples": [
                [
                    {
                        "Protocol": [
                            6
                        ],
                        "CaptureSingleDirectionTrafficOnly": true,
                        "SourcePort": [
                            500
                        ],
                        "DestinationPort": [
                            4500
                        ],
                        "TcpFlags": 16,
                        "SourceSubnets": [
                            "20.1.1.0/24"
                        ],
                        "DestinationSubnets": [
                            "10.1.1.0/24"
                        ]
                    }
                ]
            ],
            "additionalItems": true,
            "items": {
                "$id": "#/properties/Filters/items",
                "type": "object",
                "title": "The Items Schema",
                "description": "An explanation about the purpose of this instance.",
                "default": {},
                "examples": [
                    {
                        "SourcePort": [
                            500
                        ],
                        "DestinationPort": [
                            4500
                        ],
                        "TcpFlags": 16,
                        "SourceSubnets": [
                            "20.1.1.0/24"
                        ],
                        "DestinationSubnets": [
                            "10.1.1.0/24"
                        ],
                        "Protocol": [
                            6
                        ],
                        "CaptureSingleDirectionTrafficOnly": true
                    }
                ],
                "additionalProperties": true,
                "required": [
                    "SourceSubnets",
                    "DestinationSubnets",
                    "SourcePort",
                    "DestinationPort",
                    "Protocol",
                    "TcpFlags",
                    "CaptureSingleDirectionTrafficOnly"
                ],
                "properties": {
                    "SourceSubnets": {
                        "$id": "#/properties/Filters/items/properties/SourceSubnets",
                        "type": "array",
                        "title": "The Sourcesubnets Schema",
                        "description": "An array of source subnets that need to match the Source IP address of a packet. Packet can match any one value in the array of inputs.",
                        "default": [],
                        "examples": [
                            [
                                "20.1.1.0/24"
                            ]
                        ],
                        "additionalItems": true,
                        "items": {
                            "$id": "#/properties/Filters/items/properties/SourceSubnets/items",
                            "type": "string",
                            "title": "The Items Schema",
                            "description": "An explanation about the purpose of this instance.",
                            "default": "",
                            "examples": [
                                "20.1.1.0/24"
                            ]
                        }
                    },
                    "DestinationSubnets": {
                        "$id": "#/properties/Filters/items/properties/DestinationSubnets",
                        "type": "array",
                        "title": "The Destinationsubnets Schema",
                        "description": "An array of destination subnets that need to match the Destination IP address of a packet. Packet can match any one value in the array of inputs.",
                        "default": [],
                        "examples": [
                            [
                                "10.1.1.0/24"
                            ]
                        ],
                        "additionalItems": true,
                        "items": {
                            "$id": "#/properties/Filters/items/properties/DestinationSubnets/items",
                            "type": "string",
                            "title": "The Items Schema",
                            "description": "An explanation about the purpose of this instance.",
                            "default": "",
                            "examples": [
                                "10.1.1.0/24"
                            ]
                        }
                    },
                    "SourcePort": {
                        "$id": "#/properties/Filters/items/properties/SourcePort",
                        "type": "array",
                        "title": "The Sourceport Schema",
                        "description": "An array of source ports that need to match the Source port of a packet. Packet can match any one value in the array of inputs.",
                        "default": [],
                        "examples": [
                            [
                                500
                            ]
                        ],
                        "additionalItems": true,
                        "items": {
                            "$id": "#/properties/Filters/items/properties/SourcePort/items",
                            "type": "integer",
                            "title": "The Items Schema",
                            "description": "An explanation about the purpose of this instance.",
                            "default": 0,
                            "examples": [
                                500
                            ]
                        }
                    },
                    "DestinationPort": {
                        "$id": "#/properties/Filters/items/properties/DestinationPort",
                        "type": "array",
                        "title": "The Destinationport Schema",
                        "description": "An array of destination ports that need to match the Destination port of a packet. Packet can match any one value in the array of inputs.",
                        "default": [],
                        "examples": [
                            [
                                4500
                            ]
                        ],
                        "additionalItems": true,
                        "items": {
                            "$id": "#/properties/Filters/items/properties/DestinationPort/items",
                            "type": "integer",
                            "title": "The Items Schema",
                            "description": "An explanation about the purpose of this instance.",
                            "default": 0,
                            "examples": [
                                4500
                            ]
                        }
                    },
                    "Protocol": {
                        "$id": "#/properties/Filters/items/properties/Protocol",
                        "type": "array",
                        "title": "The Protocol Schema",
                        "description": "An array of protocols that need to match the Protocol of a packet. Packet can match any one value in the array of inputs.",
                        "default": [],
                        "examples": [
                            [
                                6
                            ]
                        ],
                        "additionalItems": true,
                        "items": {
                            "$id": "#/properties/Filters/items/properties/Protocol/items",
                            "type": "integer",
                            "title": "The Items Schema",
                            "description": "An explanation about the purpose of this instance.",
                            "default": 0,
                            "examples": [
                                6
                            ]
                        }
                    },
                    "TcpFlags": {
                        "$id": "#/properties/Filters/items/properties/TcpFlags",
                        "type": "integer",
                        "title": "The Tcpflags Schema",
                        "description": "A list of TCP flags. The TCP flags set on the packet must match any flag in the list of flags provided. FIN = 0x01,SYN = 0x02,RST = 0x04,PSH = 0x08,ACK = 0x10,URG = 0x20,ECE = 0x40,CWR = 0x80. An OR of flags can be provided.",
                        "default": 0,
                        "examples": [
                            16
                        ]
                    },
                    "CaptureSingleDirectionTrafficOnly": {
                        "$id": "#/properties/Filters/items/properties/CaptureSingleDirectionTrafficOnly",
                        "type": "boolean",
                        "title": "The Capturesingledirectiontrafficonly Schema",
                        "description": "A flags which when set captures reverse traffic also.",
                        "default": false,
                        "examples": [
                            true
                        ]
                    }
                }
            }
        }
    }
}

Pertimbangan kunci

  • Menjalankan pengambilan paket dapat memengaruhi performa. Ingatlah untuk menghentikan pengambilan paket jika Anda tidak membutuhkannya.
  • Durasi pengambilan paket minimum yang disarankan adalah 600 detik. Karena masalah sinkronisasi di antara beberapa komponen pada jalur, pengambilan paket yang lebih pendek mungkin tidak memberikan data lengkap.
  • File data pengambilan paket dihasilkan dalam format PCAP. Gunakan Wireshark atau aplikasi lain yang umumnya tersedia untuk membuka file PCAP.
  • Pengambilan paket tidak didukung di gateway berbasis kebijakan.
  • Ukuran maksimum file data pengambilan paket adalah 500 MB.
  • Jika SASurl parameter tidak dikonfigurasi dengan benar, jejak mungkin gagal dengan kesalahan Penyimpanan. Misalnya, cara membuat parameter SASurldengan benar, lihat Stop-AzVirtualNetworkGatewayPacketCapture.
  • Jika Anda mengonfigurasi SAS yang Didelegasikan Pengguna, pastikan akun pengguna diberikan izin RBAC yang tepat pada akun penyimpanan seperti Pemilik Data Blob Penyimpanan.

Pengambilan paket - portal

Bagian ini membantu Anda memulai dan menghentikan pengambilan paket menggunakan portal Azure.

Mulai pengambilan paket - portal

Anda dapat mengatur pengambilan paket di portal Microsoft Azure.

  1. Buka gateway VPN Anda di portal Azure.

  2. Di sebelah kiri, pilih Pengambilan Paket VPN Gateway untuk membuka halaman Pengambilan Paket VPN Gateway.

  3. Pilih Mulai Pengambilan Paket.

    Cuplikan layar memulai pengambilan paket dalam portal.

  4. Pada halaman Mulai Pengambilan Paket, buat penyesuaian yang diperlukan. Jangan pilih opsi "Ambil Lalu Lintas Arah Tunggal Saja" jika Anda ingin mengambil paket dalam dan luar.

  5. Setelah Anda mengonfigurasi pengaturan, klik Mulai Pengambilan Paket.

Menghentikan pengambilan paket - portal

Untuk menyelesaikan pengambilan paket, Anda perlu menyediakan URL SAS (atau Tanda Tangan Akses Bersama) yang valid dengan akses baca/tulis. Ketika pengambilan paket dihentikan, output pengambilan paket ditulis ke kontainer yang dirujuk oleh URL SAS.

  1. Untuk mendapatkan URL SAS, buka akun penyimpanan.

  2. Buka kontainer yang ingin Anda gunakan dan klik kanan untuk memperlihatkan daftar dropdown. Pilih Buat SAS untuk membuka halaman Buat SAS.

  3. Pada halaman Buat SAS, konfigurasikan pengaturan Anda. Pastikan Anda telah memberikan akses baca dan tulis.

  4. Klik Hasilkan token SAS dan URL.

  5. Token SAS dan URL SAS dibuat dan muncul di bawah tombol segera. Salin URL SAS Blob.

    Cuplikan layar menghasilkan token SAS.

  6. Kembali ke halaman Pengambilan Paket VPN Gateway di portal Azure dan klik tombol Hentikan Pengambilan Paket.

  7. Tempelkan URL SAS (dari langkah sebelumnya) di kotak teks Url Sas Output dan klik Hentikan Pengambilan Paket.

  8. File pengambilan paket (pcap) akan disimpan di akun yang ditentukan.

Catatan

Hindari penggunaan kontainer yang dihasilkan Azure, seperti $logs. Kontainer yang dimulai dengan $ biasanya adalah kontainer internal, dan hanya layanan yang membuatnya yang harus menggunakannya. Misalnya, $logs digunakan oleh Akun Azure Storage untuk menulis log terkait akun penyimpanan.

Pengambilan paket - PowerShell

Contoh berikut menunjukkan perintah PowerShell yang memulai dan menghentikan pengambilan paket. Untuk informasi selengkapnya tentang opsi parameter, lihat Start-AzVirtualnetworkGatewayPacketCapture.

Prasyarat

Mulai pengambilan paket untuk gateway VPN

Start-AzVirtualnetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName"

Anda dapat menggunakan parameter opsional -FilterData untuk menerapkan filter.

Mulai pengambilan paket untuk gateway VPN

Stop-AzVirtualNetworkGatewayPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayName" -SasUrl "YourSASURL"

Untuk informasi selengkapnya tentang opsi parameter, lihat Stop-AzVirtualNetworkGatewayPacketCapture.

Mulai pengambilan paket untuk koneksi gateway VPN

Start-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName"

Anda dapat menggunakan parameter opsional -FilterData untuk menerapkan filter.

Menghentikan pengambilan paket pada koneksi gateway VPN

Stop-AzVirtualNetworkGatewayConnectionPacketCapture -ResourceGroupName "YourResourceGroupName" -Name "YourVPNGatewayConnectionName" -SasUrl "YourSASURL"

Untuk informasi selengkapnya tentang opsi parameter, lihat Stop-AzVirtualNetworkGatewayPacketCapture.

Langkah berikutnya

Untuk informasi selengkapnya tentang VPN Gateway, lihat Apa itu VPN Gateway?