Freigeben über


Konfigurieren der Paketerfassung für VPN-Gateways

Konnektivitäts- und Leistungsprobleme sind häufig komplex. Es kann viel Zeit und Mühe dauern, um die Ursache des Problems einzugrenzen. Die Paketerfassung kann Ihnen helfen, den Umfang eines Problems auf bestimmte Teile des Netzwerks einzugrenzen. Sie können feststellen, ob sich das Problem auf der Kundenseite des Netzwerks, auf der Azure-Seite des Netzwerks oder irgendwo dazwischen befindet. Nachdem Sie das Problem eingegrenzt haben, ist es effizienter, Korrekturmaßnahmen zu debuggen und zu ergreifen.

Es gibt einige häufig verfügbare Paketerfassungstools. Das Abrufen relevanter Paketerfassungen mit diesen Tools kann umständlich sein, insbesondere in Szenarien mit hohem Datenverkehr. Die Filterfunktionen, die von der Azure VPN-Gateway-Paketerfassung bereitgestellt werden, sind ein wichtiger Unterschied. Sie können die VPN-Gateway-Paketerfassung zusammen mit häufig verfügbaren Paketerfassungstools verwenden.

Informationen zur Paketerfassung für VPN-Gateway

Sie können die VPN-Gatewaypaketerfassung auf dem Gateway oder je nach Ihren Anforderungen auf eine bestimmte Verbindung ausführen. Sie können die Paketerfassung auch auf mehreren Tunneln gleichzeitig ausführen. Sie können unidirektionalen oder bidirektionalen Datenverkehr, IKE- und ESP-Datenverkehr und innere Pakete zusammen mit der Filterung auf einem VPN-Gateway erfassen.

Es ist hilfreich, einen Fünf-Tupel-Filter (Quellsubnetz, Zielsubnetz, Quellport, Zielport, Protokoll) und TCP-Flags (SYN, ACK, FIN, URG, PSH, RST) zu verwenden, wenn Sie Probleme im Datenverkehr mit hohem Volumen isolieren.

Die folgenden Beispiele für JSON und ein JSON-Schema enthalten Erläuterungen zu jeder Eigenschaft. Im Folgenden sind einige Einschränkungen zu beachten, wenn Sie Paketerfassungen ausführen:

  • Im hier gezeigten Schema ist der Filter ein Array, derzeit kann jedoch nur ein Filter gleichzeitig verwendet werden.
  • Sie können nicht mehrere gatewayweite Paketerfassungen gleichzeitig ausführen.
  • Sie können nicht mehrere Paketerfassungen gleichzeitig für eine einzelne Verbindung ausführen. Sie können mehrere Paketerfassungen auf verschiedenen Verbindungen gleichzeitig ausführen.
  • Pro Gateway können maximal fünf Paketerfassungen parallel ausgeführt werden. Diese Paketerfassungen können eine Kombination aus gatewayweiten Paketerfassungen und Paketaufzeichnungen pro Verbindung sein.
  • Die Einheit für MaxPacketBufferSize ist Bytes.
  • Die Einheit für MaxFileSize ist Megabyte.

Hinweis

Legen Sie die Option CaptureSingleDirectionTrafficOnly auf "false " fest, wenn Sie innere und äußere Pakete erfassen möchten. Beim Analysieren von PCAP-Dateien mit Paketen, die aufgrund der Einstellung MaxPacketBufferSize abgeschnitten wurden, kann dies zu unerwarteten Warnungen wie „TCP Previous segment not captured“ und „TCP ACKed unseen Segment“ führen.

Beispiel-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
    }
  ]
}

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": [
                            "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
                        ]
                    }
                }
            }
        }
    }
}

Wichtige Überlegungen

  • Das Ausführen von Paketerfassungen kann sich auf die Leistung auswirken. Denken Sie daran, die Paketerfassung zu beenden, wenn sie nicht benötigt wird.
  • Die empfohlene Mindestdauer für die Paketerfassung beträgt 600 Sekunden. Aufgrund von Synchronisierungsproblemen zwischen mehreren Komponenten im Pfad stellen kürzere Paketerfassungen möglicherweise keine vollständigen Daten bereit.
  • Bei der Paketerfassung werden Datendateien im PCAP-Format generiert. Verwenden Sie Wireshark oder andere allgemein verfügbare Anwendungen, um PCAP-Dateien zu öffnen.
  • Paketerfassungen werden für richtlinienbasierte Gateways nicht unterstützt.
  • Die maximale Dateigröße von Paketerfassungsdatendateien beträgt 500 MB.
  • Wenn der SASurl Parameter nicht ordnungsgemäß konfiguriert ist, kann das Tracing möglicherweise mit Speicherfehlern fehlschlagen. Beispiele zum ordnungsgemäßen Generieren eines SASurl Parameters finden Sie unter Stop-AzVirtualNetworkGatewayPacketCapture.
  • Wenn Sie eine delegierte Benutzer-SAS konfigurieren, stellen Sie sicher, dass dem Benutzerkonto die richtigen RBAC-Berechtigungen für das Speicherkonto erteilt werden, z. B. "Storage Blob Data Owner".

Paketerfassung - Portal

Dieser Abschnitt hilft Ihnen beim Starten und Beenden einer Paketerfassung mithilfe des Azure-Portals.

Paketerfassung starten - Portal

Sie können die Paketerfassung im Azure-Portal einrichten.

  1. Wechseln Sie zum VPN-Gateway im Azure-Portal.

  2. Wählen Sie auf der linken Seite die VPN-Gatewaypaketerfassung aus, um die Seite "VPN Gateway Packet Capture" zu öffnen.

  3. Wählen Sie "Paketerfassung starten" aus.

    Screenshot des Startpaketerfassungs im Portal.

  4. Nehmen Sie auf der Seite "Paketerfassung starten " alle erforderlichen Anpassungen vor. Wählen Sie nicht die Option "Nur Einzelrichtungsverkehr erfassen" aus, wenn Sie sowohl innere als auch äußere Pakete erfassen möchten.

  5. Nachdem Sie die Einstellungen konfiguriert haben, klicken Sie auf "Paketerfassung starten".

Beenden der Paketerfassung – Portal

Um eine Paketerfassung abzuschließen, müssen Sie eine gültige SAS-URL (oder Shared Access Signature) mit Lese-/Schreibzugriff bereitstellen. Wenn eine Paketerfassung beendet wird, wird die Ausgabe der Paketerfassung in den Container geschrieben, auf den von der SAS-URL verwiesen wird.

  1. Um die SAS-URL abzurufen, wechseln Sie zum Speicherkonto.

  2. Wechseln Sie zum Container, den Sie verwenden möchten, und klicken Sie mit der rechten Maustaste, um die Dropdownliste anzuzeigen. Wählen Sie "SAS generieren " aus, um die Seite "SAS generieren" zu öffnen.

  3. Konfigurieren Sie auf der Seite "SAS generieren" Ihre Einstellungen. Stellen Sie sicher, dass Sie Lese- und Schreibzugriff gewährt haben.

  4. Klicken Sie auf SAS-Token und URL generieren.

  5. Das SAS-Token und die SAS-URL werden generiert und direkt unterhalb der Schaltfläche angezeigt. Kopieren Sie die BLOB-SAS-URL.

    Screenshot des Generierens von SAS-Token.

  6. Wechseln Sie zurück zur Seite "VPN Gateway Packet Capture" im Azure-Portal, und klicken Sie auf die Schaltfläche " Paketerfassung beenden ".

  7. Fügen Sie die SAS-URL (aus dem vorherigen Schritt) in das Textfeld " Ausgabe-Sas-URL " ein, und klicken Sie auf " Paketerfassung beenden".

  8. Die Paketerfassungsdatei (pcap) wird im angegebenen Konto gespeichert.

Hinweis

Vermeiden Sie die Verwendung von von Azure generierten Containern, wie z.B. $logs. Container, die beginnen $ , sind in der Regel interne Container, und nur der Dienst, der sie erstellt, sollte sie verwenden. $logs wird z. B. von Azure Storage-Konto zum Schreiben von protokollbezogenen Speicherkonten verwendet.

Paketerfassung – PowerShell

Die folgenden Beispiele zeigen PowerShell-Befehle, die Paketerfassungen starten und beenden. Weitere Informationen zu Parameteroptionen finden Sie unter Start-AzVirtualnetworkGatewayPacketCapture.

Voraussetzungen

Starten der Paketerfassung für ein VPN-Gateway

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

Sie können den optionalen Parameter -FilterData verwenden, um einen Filter anzuwenden.

Beenden der Paketerfassung für ein VPN-Gateway

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

Weitere Informationen zu Parameteroptionen finden Sie unter Stop-AzVirtualNetworkGatewayPacketCapture.

Starten der Paketerfassung für eine VPN-Gatewayverbindung

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

Sie können den optionalen Parameter -FilterData verwenden, um einen Filter anzuwenden.

Beenden der Paketerfassung in einer VPN-Gatewayverbindung

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

Weitere Informationen zu Parameteroptionen finden Sie unter Stop-AzVirtualNetworkGatewayConnectionPacketCapture.

Nächste Schritte

Weitere Informationen zum VPN-Gateway finden Sie unter Was ist VPN-Gateway?