Konfigurieren der Paketerfassung für VPN Gateways

Konnektivitäts- und leistungsbezogene Probleme sind häufig komplex. Es kann viel Zeit und Mühe kosten, die Ursache des Problems einzugrenzen. Mithilfe der Paketerfassung können Sie den Umfang eines Problems auf bestimmte Teile des Netzwerks eingrenzen. Sie kann Ihnen dabei helfen, festzustellen, ob das Problem auf der Kundenseite des Netzwerks, auf der Azure-Seite des Netzwerks oder irgendwo dazwischen vorliegt. Nachdem Sie das Problem eingegrenzt haben, ist es effizienter, das Problem zu debuggen und Abhilfemaßnahmen zu ergreifen.

Für die Paketerfassung stehen verschiedene gängige Tools zur Verfügung. Eine relevante Paketerfassung kann mit diesen Tools umständlich sein, insbesondere in Szenarien mit hohem Datenaufkommen. Die von einer Paketerfassung für VPN Gateways bereitgestellten Filterfunktionen sind ein wichtiges Unterscheidungsmerkmal. Sie können die Paketerfassung für VPN Gateways zusammen mit allgemein verfügbaren Paketerfassungstools verwenden.

Informationen zur Paketerfassung für VPN Gateways

Sie können die VPN Gateway-Paketerfassung je nach Anforderung für das Gateway oder eine bestimmte Verbindung ausführen. Es ist außerdem möglich, Paketerfassung für mehrere Tunnel gleichzeitig auszuführen. Sie können uni- oder bidirektionalen Datenverkehr, IKE- und ESP-Datenverkehr sowie interne Pakete gemeinsam mit einer Filterung für ein VPN Gateway erfassen.

Die Verwendung von 5-Tupel-Filtern (Quellsubnetz, Zielsubnetz, Quellport, Zielport, Protokoll) und TCP-Flags (SYN, ACK, FIN, URG, PSH, RST) ist hilfreich, um eine Problemisolierung bei einem hohen Datenverkehrsaufkommen durchzuführen.

Die folgenden JSON-Beispiele und ein JSON-Schema bieten Erläuterungen zu den einzelnen Eigenschaften. Beachten Sie die folgenden Einschränkungen, wenn Sie Paketerfassungen ausführen:

  • Im hier gezeigten Schema ist der Filter ein Array, aber derzeit kann jeweils nur ein Filter gleichzeitig verwendet werden.
  • Mehrere gatewayweite Paketerfassungen können nicht zur gleichen Zeit ausgeführt werden.
  • Sie können nicht mehrere Paketerfassungen gleichzeitig für eine einzige Verbindung ausführen. Sie können Paketerfassungen für verschiedene Verbindungen gleichzeitig ausführen.
  • Pro Gateway können maximal fünf Paketerfassungen parallel ausgeführt werden. Diese Paketerfassungen können eine Kombination aus der gatewayweiten Paketerfassungen und Paketerfassungen pro Verbindung sein.
  • Für MaxPacketBufferSize wird die Einheit „Bytes“ und für MaxFileSize die Einheit „Megabytes“ verwendet.

Hinweis

Legen Sie die Option CaptureSingleDirectionTrafficOnly auf FALSE fest, wenn Sie sowohl innere als auch äußere Pakete aufzeichnen möchten.

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

Wichtige Aspekte

  • 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 bei richtlinienbasierten Gateways nicht unterstützt.
  • Die maximale Dateigröße von Paketerfassungsdatendateien beträgt 500 MB.
  • Wenn der SASurl-Parameter nicht ordnungsgemäß konfiguriert ist, treten bei der Ablaufverfolgung möglicherweise Speicherfehler auf. Beispiele zum ordnungsgemäßen Generieren von SASurl-Parametern finden Sie unter SASurl.
  • Wenn Sie eine benutzerseitig delegierte SAS konfigurieren, stellen Sie sicher, dass dem Benutzerkonto die richtigen RBAC-Berechtigungen für das Speicherkonto erteilt werden, z. B. Speicherblob-Datenbesitzer.

Paketerfassung: Portal

In diesem Abschnitt können Sie eine Paketerfassung mithilfe des Azure-Portals starten und beenden.

Paketerfassung starten: Portal

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

  1. Navigieren Sie im Azure-Portal zu Ihrem VPN Gateway.

  2. Wählen Sie links VPN Gateway-Paketerfassung aus, um die Seite „VPN Gateway-Paketerfassung“ zu öffnen.

  3. Wählen Sie Paketerfassung starten aus.

    Screenshot: Start der Paketerfassung im Portal.

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

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

Paketerfassung beenden: Portal

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

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

  2. Navigieren Sie zu dem 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 sofort unterhalb der Schaltfläche angezeigt. Kopieren Sie die Blob-SAS-URL.

    Screenshot des Generierens des SAS-Tokens.

  6. Wechseln Sie im Azure-Portal zurück zur Seite „VPN Gateway-Paketerfassung“, 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 Azure generierten Containern, z. B. $logs. Container, die mit $ 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 zum Starten und Beenden von Paketerfassungen. 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 für eine VPN-Gatewayverbindung

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

Weitere Informationen zu Parameteroptionen finden Sie unter Stop-AzVirtualNetworkGatewayConnectionPacketCapture.

Nächste Schritte

Weitere Informationen zu VPN Gateways finden Sie unter Was ist ein VPN Gateway?