VPN ゲートウェイのパケット キャプチャを構成するConfigure packet capture for VPN gateways

接続とパフォーマンスに関連する問題は複雑になることが多く、Connectivity and performance-related problems are often complex. 問題の原因を絞り込むだけでも、かなりの時間と労力を要する場合があります。It can take significant time and effort just to narrow down the cause of the problem. パケット キャプチャは、問題の範囲をネットワークの特定の部分に絞り込むのに役立ちます。Packet capture can help you narrow down the scope of a problem to certain parts of the network. これを使用すれば、問題がネットワークの顧客側にあるのか、ネットワークの Azure 側にあるのか、またはその間のどこかにあるのかを判断できます。It can help you determine whether the problem is on the customer side of the network, the Azure side of the network, or somewhere in between. 問題を絞り込んだ後は、デバッグと修復アクションがより効率的に行えるようになります。After you narrow down the problem, it's more efficient to debug and take remedial action.

パケット キャプチャ ツールには、一般に入手可能なものがいくつかあります。There are some commonly available packet capture tools. これらのツールで関連するパケット キャプチャを取得することは、大量のトラフィックが発生するシナリオでは特に面倒になることがあります。Getting relevant packet captures with these tools can be cumbersome, especially in high-volume traffic scenarios. Azure VPN Gateway パケット キャプチャで提供されるフィルター処理機能は、主要な差別化要因です。The filtering capabilities provided by Azure VPN Gateway packet capture are a major differentiator. VPN Gateway パケット キャプチャは、一般に入手可能なパケット キャプチャ ツールと共に使用できます。You can use VPN Gateway packet capture together with commonly available packet capture tools.

VPN Gateway パケット キャプチャのフィルター処理機能VPN Gateway packet capture filtering capabilities

VPN Gateway パケット キャプチャは、必要に応じて、ゲートウェイでも特定の接続でも実行できます。You can run VPN Gateway packet capture on the gateway or on a specific connection, depending on your needs. また、複数のトンネルで同時にパケット キャプチャを実行することもできます。You can also run packet capture on multiple tunnels at the same time. VPN ゲートウェイでフィルター処理を使ってキャプチャできるのは、一方向または双方向のトラフィック、IKE と ESP のトラフィック、および内部パケットです。You can capture one-way or bi-directional traffic, IKE and ESP traffic, and inner packets along with filtering on a VPN gateway.

大量のトラフィック上の問題を特定するときに、5 タプルのフィルター (ソース サブネット、宛先サブネット、発信元ポート、接続先ポート、プロトコル) と TCP フラグ (SYN、ACK、FIN、URG、PSH、RST) を使用すると便利です。It's helpful to use a five-tuple filter (source subnet, destination subnet, source port, destination port, protocol) and TCP flags (SYN, ACK, FIN, URG, PSH, RST) when you're isolating problems in high-volume traffic.

次の JSON と JSON スキーマの例では、各プロパティについて説明しています。The following examples of JSON and a JSON schema provide explanations of each property. 以下に、パケット キャプチャを実行するときに注意すべき制限事項をいくつか示します。Here are some limitations to keep in mind when you run packet captures:

  • ここに示されているスキーマでは、フィルターは配列ですが、現在使用できるフィルターは一度に 1 つのみです。In the schema shown here, the filter is an array, but currently only one filter can be used at a time.
  • ゲートウェイ全体のパケット キャプチャを同時に複数実行することはできません。You can't run multiple gateway-wide packet captures at the same time.
  • 1 つの接続で複数のパケット キャプチャを同時に実行することはできません。You can't run multiple packet captures on a single connection at the same time. 異なる接続で複数のパケット キャプチャを同時に実行することはできます。You can run multiple packet captures on different connections at the same time.
  • ゲートウェイごとに最大 5 つのパケット キャプチャを並列実行することができます。A maximum of five packet captures can be run in parallel per gateway. これらのパケット キャプチャは、ゲートウェイ全体のパケット キャプチャと接続ごとのパケット キャプチャを組み合わせたものであってもかまいません。These packet captures can be a combination of gateway-wide packet captures and per-connection packet captures.
  • MaxPacketBufferSize の単位はバイトで、MaxFileSize はメガバイトです。The unit for MaxPacketBufferSize is bytes and MaxFileSize is megabytes

JSON の例Example 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
    }
  ]
}

JSON スキーマJSON schema

{
    "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
                        ]
                    }
                }
            }
        }
    }
}

パケット キャプチャ - ポータルPacket capture - portal

Azure portal でパケット キャプチャを設定できます。You can set up packet capture in the Azure portal.

ポータルでのパケット キャプチャのスクリーンショット。

パケット キャプチャ - PowerShellPacket capture - PowerShell

次の例は、パケット キャプチャを開始および停止する PowerShell コマンドを示しています。The following examples show PowerShell commands that start and stop packet captures. パラメーター オプションの詳細については、「AzVirtualnetworkGatewayPacketCapture」を参照してください。For more information on parameter options, see Start-AzVirtualnetworkGatewayPacketCapture.

VPN ゲートウェイのパケット キャプチャを開始するStart packet capture for a VPN gateway

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

省略可能なパラメーター -FilterData を使用してフィルターを適用できます。You can use the optional parameter -FilterData to apply a filter.

VPN ゲートウェイのパケット キャプチャを停止するStop packet capture for a VPN gateway

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

VPN ゲートウェイ接続のパケット キャプチャを開始するStart packet capture for a VPN gateway connection

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

省略可能なパラメーター -FilterData を使用してフィルターを適用できます。You can use the optional parameter -FilterData to apply a filter.

VPN ゲートウェイ接続のパケット キャプチャを停止するStop packet capture on a VPN gateway connection

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

重要な考慮事項Key considerations

  • パケット キャプチャの実行は、パフォーマンスに影響を与える可能性があります。Running packet capture can affect performance. 必要ない場合は、パケット キャプチャを忘れずに停止してください。Remember to stop the packet capture when you don't need it.
  • 推奨される最小パケット キャプチャ期間は 600 秒です。Suggested minimum packet capture duration is 600 seconds. パス上の複数のコンポーネント間で同期の問題が発生するため、パケット キャプチャの時間が短いと、完全なデータを取得できない場合があります。Because of sync issues among multiple components on the path, shorter packet captures might not provide complete data.
  • パケット キャプチャ データ ファイルは PCAP 形式で生成されます。Packet capture data files are generated in PCAP format. PCAP ファイルを開くには、Wireshark または他の一般に利用できるアプリケーションを使用します。Use Wireshark or other commonly available applications to open PCAP files.
  • パケット キャプチャは、ポリシーベースのゲートウェイではサポートされていません。Packet captures aren't supported on policy-based gateways.
  • SASurl パラメーターが正しく構成されていない場合、トレースはストレージ エラーで失敗する可能性があります。If the SASurl parameter isn't configured correctly, the trace might fail with Storage errors. SASurl パラメーターを正しく生成する方法の例については、「Stop-AzVirtualNetworkGatewayPacketCapture」を参照してください。For examples of how to correctly generate an SASurl parameter, see Stop-AzVirtualNetworkGatewayPacketCapture.

次のステップNext steps

VPN Gateway の詳細については、「VPN ゲートウェイとは」をご覧ください。For more information about VPN Gateway, see What is VPN Gateway?.