Mengonfigurasi pengambilan paket untuk gateway VPN

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

Ada beberapa alat pengambilan paket yang umum tersedia. Mendapatkan tangkapan paket yang relevan dengan alat-alat ini bisa rumit, terutama dalam skenario lalu lintas volume tinggi. Kemampuan pemfilteran yang disediakan oleh penangkapan paket Azure VPN Gateway adalah pembeda utama. Anda dapat menggunakan pengambilan paket VPN Gateway bersama dengan alat penangkapan 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, serta paket internal melalui pemfilteran di gateway VPN.

Sangat membantu 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 saat Anda menjalankan pengambilan paket:

  • Dalam skema yang ditunjukkan di sini, filter adalah array, tetapi saat ini hanya satu filter yang dapat digunakan pada satu waktu.
  • Anda tidak dapat menjalankan beberapa pengambilan paket di seluruh gateway 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 tangkapan paket di seluruh gateway dan pengambilan paket per koneksi.
  • Unit untuk MaxPacketBufferSize adalah byte.
  • Unit untuk MaxFileSize adalah megabyte.

Nota

Atur opsi CaptureSingleDirectionTrafficOnly ke false jika Anda ingin mengambil paket dalam dan luar. Saat menganalisis file pcap yang berisi paket yang terpotong karena pengaturan MaxPacketBufferSize, ini dapat mengakibatkan peringatan tak terduga seperti "Segmen sebelumnya tidak tertangkap TCP" dan "Segmen yang tidak terlihat di-ACK oleh TCP".

Contoh JSON

{
  "TracingFlags": 11,
  "MaxPacketBufferSize": 120,
  "MaxFileSize": 200,
  "Filters": [
    {
      "SourceSubnets": [
        "10.1.0.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": [
                            "10.1.0.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": [
                            "10.1.0.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": [
                            [
                                "10.1.0.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": [
                                "10.1.0.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 utama

  • 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 pada gateway berbasis kebijakan.
  • Ukuran maksimum file data pengambilan paket adalah 500 MB.
  • Jika parameter SASurl tidak dikonfigurasi dengan benar, pelacakan mungkin gagal dengan kesalahan penyimpanan. Untuk contoh cara menghasilkan SASurl parameter dengan 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 Microsoft Azure.

Mulai pengambilan paket - portal

Anda dapat menyiapkan pengambilan paket di portal Microsoft Azure.

  1. Buka VPN gateway 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 mulai pengambilan paket di portal.

  4. Pada halaman Mulai Pengambilan Paket , buat penyesuaian yang diperlukan. Jangan pilih opsi "Tangkap Lalu Lintas Arah Tunggal Saja" jika Anda ingin menangkap paket masuk dan keluar.

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

Hentikan penangkapan 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 pembuatan token SAS.

  6. Kembali ke halaman Pengambilan Paket VPN Gateway di portal Microsoft 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 tangkapan paket (pcap) akan disimpan di akun yang ditentukan.

Nota

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 -FilterData opsional untuk menerapkan filter.

Menghentikan 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 -FilterData opsional 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-AzVirtualNetworkGatewayConnectionPacketCapture.

Langkah berikutnya

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