Condividi tramite


Configurare l'acquisizione di pacchetti per i gateway VPN

Connessione ivity e problemi relativi alle prestazioni sono spesso complessi. Può richiedere tempo e sforzo significativi solo per restringere la causa del problema. L'acquisizione di pacchetti consente di limitare l'ambito di un problema a determinate parti della rete. Può essere utile per determinare se il problema si trova sul lato cliente della rete, sul lato Azure della rete o da un punto all'altro. Dopo aver limitato il problema, è più efficiente eseguire il debug e intraprendere un'azione correttiva.

Esistono alcuni strumenti di acquisizione pacchetti comunemente disponibili. L'acquisizione di pacchetti pertinenti con questi strumenti può essere complessa, soprattutto in scenari di traffico con volumi elevati. Le funzionalità di filtro fornite da Azure Gateway VPN'acquisizione di pacchetti sono un fattore di differenziazione principale. È possibile usare Gateway VPN acquisizione pacchetti insieme a strumenti di acquisizione pacchetti comunemente disponibili.

Informazioni sull'acquisizione di pacchetti per Gateway VPN

È possibile eseguire Gateway VPN'acquisizione di pacchetti nel gateway o in una connessione specifica, a seconda delle esigenze. È anche possibile eseguire l'acquisizione di pacchetti su più tunnel contemporaneamente. È possibile acquisire traffico unidirezionale o bidirezionale, traffico IKE ed ESP e pacchetti interni, oltre a filtrare in base a un gateway VPN.

È utile usare un filtro a cinque tuple (subnet di origine, subnet di destinazione, porta di origine, porta di destinazione, protocollo) e flag TCP (SYN, ACK, FIN, URG, PSH, RST) quando si isolano i problemi nel traffico con volumi elevati.

Gli esempi seguenti di JSON e uno schema JSON forniscono spiegazioni di ogni proprietà. Ecco alcune limitazioni da tenere presenti quando si eseguono acquisizioni di pacchetti:

  • Nello schema illustrato di seguito il filtro è una matrice, ma attualmente è possibile usare un solo filtro alla volta.
  • Non è possibile eseguire più acquisizioni di pacchetti a livello di gateway contemporaneamente.
  • Non è possibile eseguire più acquisizioni di pacchetti in una singola connessione contemporaneamente. È possibile eseguire più acquisizioni di pacchetti in connessioni diverse contemporaneamente.
  • È possibile eseguire un massimo di cinque acquisizioni di pacchetti in parallelo per ogni gateway. Queste acquisizioni di pacchetti possono essere una combinazione di acquisizioni di pacchetti a livello di gateway e acquisizioni di pacchetti per connessione.
  • L'unità per MaxPacketBufferSize è byte e MaxFileSize è megabyte

Nota

Impostare l'opzione CaptureSingleDirectionTrafficOnly su false se si desidera acquisire pacchetti interni ed esterni.

Json di esempio

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

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

Considerazioni essenziali

  • L'esecuzione dell'acquisizione di pacchetti può influire sulle prestazioni. Ricordarsi di arrestare l'acquisizione di pacchetti quando non è necessaria.
  • La durata minima consigliata per l'acquisizione di pacchetti è di 600 secondi. A causa dei problemi di sincronizzazione tra più componenti nel percorso, le acquisizioni di pacchetti più brevi potrebbero non fornire dati completi.
  • I file di dati di acquisizione di pacchetti vengono generati in formato PCAP. Usare Wireshark o altre applicazioni comunemente disponibili per aprire i file PCAP.
  • Le acquisizioni di pacchetti non sono supportate nei gateway basati su criteri.
  • Il numero massimo di file di dati di acquisizione pacchetti è 500 MB.
  • Se il SASurl parametro non è configurato correttamente, la traccia potrebbe non riuscire con errori Archiviazione. Per esempi di come generare correttamente un SASurl parametro, vedere Stop-AzVirtualNetworkGatewayPacketCapture.
  • Se si configura una firma di accesso condiviso delegata dall'utente, assicurarsi che all'account utente siano concesse autorizzazioni di controllo degli accessi in base al ruolo appropriate per l'account di archiviazione, ad esempio Archiviazione proprietario dei dati BLOB.

Acquisizione pacchetti - Portale

Questa sezione consente di avviare e arrestare un'acquisizione di pacchetti usando il portale di Azure.

Avviare l'acquisizione di pacchetti - Portale

È possibile configurare l'acquisizione di pacchetti nella portale di Azure.

  1. Passare al gateway VPN nel portale di Azure.

  2. A sinistra selezionare Gateway VPN Acquisizione pacchetti per aprire la pagina acquisizione pacchetti Gateway VPN.

  3. Selezionare Avvia acquisizione pacchetti.

    Screenshot dell'acquisizione pacchetti iniziale nel portale.

  4. Nella pagina Avvia acquisizione pacchetti apportare le modifiche necessarie. Non selezionare l'opzione "Acquisisci solo traffico in direzione singola" se vuoi acquisire pacchetti interni ed esterni.

  5. Dopo aver configurato le impostazioni, fare clic su Avvia acquisizione pacchetti.

Arrestare l'acquisizione di pacchetti - Portale

Per completare un'acquisizione di pacchetti, è necessario fornire un URL di firma di accesso condiviso (o firma di accesso condiviso) valido con accesso in lettura/scrittura. Quando viene arrestata un'acquisizione di pacchetti, l'output dell'acquisizione di pacchetti viene scritto nel contenitore a cui fa riferimento l'URL della firma di accesso condiviso.

  1. Per ottenere l'URL della firma di accesso condiviso, passare all'account di archiviazione.

  2. Passare al contenitore da usare e fare clic con il pulsante destro del mouse per visualizzare l'elenco a discesa. Selezionare Genera firma di accesso condiviso per aprire la pagina Genera firma di accesso condiviso.

  3. Nella pagina Genera firma di accesso condiviso configurare le impostazioni. Assicurarsi di aver concesso l'accesso in lettura e scrittura.

  4. Fare clic su Genera URL e token di firma di accesso condiviso.

  5. Il token di firma di accesso condiviso e l'URL di firma di accesso condiviso vengono generati e vengono visualizzati immediatamente sotto il pulsante. Copiare l'URL della firma di accesso condiviso del BLOB.

    Screenshot della generazione del token di firma di accesso condiviso.

  6. Tornare alla pagina acquisizione pacchetti Gateway VPN nel portale di Azure e fare clic sul pulsante Arresta acquisizione pacchetti.

  7. Incollare l'URL di firma di accesso condiviso (dal passaggio precedente) nella casella di testo Output Sas URL (URL sas di output) e fare clic su Arresta acquisizione pacchetti.

  8. Il file pcap (Packet Capture) verrà archiviato nell'account specificato.

Nota

Evitare l'uso di contenitori generati da Azure, ad esempio $logs. I contenitori che iniziano con $ sono in genere contenitori interni e solo il servizio che li crea deve usare. Ad esempio, $logs viene usato da Archiviazione di Azure Account per la scrittura di log correlati all'account di archiviazione.

Acquisizione pacchetti - PowerShell

Gli esempi seguenti illustrano i comandi di PowerShell che avviano e interrompono acquisizioni di pacchetti. Per altre informazioni sulle opzioni dei parametri, vedere Start-AzVirtualnetworkGatewayPacketCapture.

Prerequisiti

  • I dati di acquisizione di pacchetti devono essere registrati in un account di archiviazione nella sottoscrizione. Vedere Creare un account di archiviazione.

  • Per arrestare l'acquisizione di pacchetti, è necessario generare per l'account SASUrl di archiviazione. Vedere Creare una firma di accesso condiviso per la delega utente.

Avviare l'acquisizione di pacchetti per un gateway VPN

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

È possibile usare il parametro -FilterData facoltativo per applicare un filtro.

Arrestare l'acquisizione di pacchetti per un gateway VPN

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

Per altre informazioni sulle opzioni dei parametri, vedere Stop-AzVirtualNetworkGatewayPacketCapture.

Avviare l'acquisizione di pacchetti per una connessione gateway VPN

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

È possibile usare il parametro -FilterData facoltativo per applicare un filtro.

Arrestare l'acquisizione di pacchetti in una connessione gateway VPN

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

Per altre informazioni sulle opzioni dei parametri, vedere Stop-AzVirtualNetworkGateway Connessione ionPacketCapture.

Passaggi successivi

Per altre informazioni sulle Gateway VPN, vedere Che cos'è Gateway VPN?