Usare l'acquisizione di pacchetti per il monitoraggio proattivo della rete con avvisi e Funzioni di AzureUse packet capture for proactive network monitoring with alerts and Azure Functions

Il servizio di acquisizione di pacchetti di Network Watcher crea sessioni di acquisizione per registrare il traffico da e verso le macchine virtuali.Network Watcher packet capture creates capture sessions to track traffic in and out of virtual machines. Il file di acquisizione può avere un filtro che viene definito per tenere traccia solo del traffico che si vuole monitorare.The capture file can have a filter that is defined to track only the traffic that you want to monitor. Questi dati vengono quindi archiviati in un BLOB di archiviazione o in locale nel computer guest.This data is then stored in a storage blob or locally on the guest machine.

Questa funzionalità può essere avviata in remoto da altri scenari di automazione, ad esempio Funzioni di Azure.This capability can be started remotely from other automation scenarios such as Azure Functions. L'acquisizione di pacchetti consente di eseguire acquisizioni proattive in base alle anomalie di rete definite.Packet capture gives you the capability to run proactive captures based on defined network anomalies. Altri utilizzi comprendono la raccolta di statistiche di rete, l'ottenimento di informazioni sulle intrusioni nella rete, il debug delle comunicazioni client-server e molto altro ancora.Other uses include gathering network statistics, getting information about network intrusions, debugging client-server communications, and more.

Le risorse distribuite in Azure sono in esecuzione 24 ore su 24, 7 giorni su 7.Resources that are deployed in Azure run 24/7. Nessuno può monitorare attivamente lo stato di tutte le risorse 24 ore su 24, 7 giorni su 7.You and your staff cannot actively monitor the status of all resources 24/7. Si pensi a cosa può accadere se si verifica un problema alle 2 del mattino.For example, what happens if an issue occurs at 2 AM?

Usando Network Watcher, gli avvisi e le funzioni dall'ecosistema di Azure, è possibile rispondere in modo proattivo alle problematiche della rete con i dati e gli strumenti più idonei.By using Network Watcher, alerting, and functions from within the Azure ecosystem, you can proactively respond with the data and tools to solve problems in your network.

Scenario

PrerequisitiPrerequisites

ScenarioScenario

In questo esempio, la VM invia più segmenti TCP del solito e si vuole essere avvisati.In this example, your VM is sending more TCP segments than usual, and you want to be alerted. Come esempio qui vengono usati i segmenti TCP, ma è possibile usare qualsiasi condizione di avviso.TCP segments are used as an example here, but you can use any alert condition.

Una volta ricevuto l'avviso, si vogliono ricevere dati a livello di pacchetto per comprendere perché la comunicazione è aumentata.When you are alerted, you want to receive packet-level data to understand why communication has increased. Sarà così possibile intervenire per riportare la macchina virtuale in condizioni di normale comunicazione.Then you can take steps to return the virtual machine to regular communication.

Questo scenario presuppone che esistano già un'istanza di Network Watcher e un gruppo di risorse con una macchina virtuale valida.This scenario assumes that you have an existing instance of Network Watcher and a resource group with a valid virtual machine.

L'elenco seguente è una panoramica del flusso di lavoro effettivo:The following list is an overview of the workflow that takes place:

  1. Nella macchina virtuale viene attivato un avviso.An alert is triggered on your VM.
  2. L'avviso chiama la funzione di Azure tramite un webhook.The alert calls your Azure function via a webhook.
  3. La funzione di Azure elabora l'avviso e avvia una sessione di acquisizione di pacchetti di Network Watcher.Your Azure function processes the alert and starts a Network Watcher packet capture session.
  4. L'acquisizione di pacchetti viene eseguita nella macchina virtuale e raccoglie il traffico.The packet capture runs on the VM and collects traffic.
  5. Il file di acquisizione pacchetto viene caricato in un account di archiviazione per revisione e diagnosi.The packet capture file is uploaded to a storage account for review and diagnosis.

Per automatizzare questo processo, nella VM viene creato e connesso un avviso da attivare quando si verifica l'evento imprevisto.To automate this process, we create and connect an alert on our VM to trigger when the incident occurs. Viene anche creata una funzione per chiamare Network Watcher.We also create a function to call into Network Watcher.

Questo scenario prevede le seguenti operazioni:This scenario does the following:

  • Crea una funzione di Azure che avvia un'acquisizione di pacchetti.Creates an Azure function that starts a packet capture.
  • Crea una regola di avviso in una macchina virtuale e configura la regola di avviso in modo da chiamare la funzione di Azure.Creates an alert rule on a virtual machine and configures the alert rule to call the Azure function.

Creare una funzione di AzureCreate an Azure function

Il primo passaggio è la creazione di una funzione di Azure per elaborare l'avviso e creare un'acquisizione di pacchetti.The first step is to create an Azure function to process the alert and create a packet capture.

  1. Nel portale di Azure selezionare Nuovo > Calcolo > App per le funzioni.In the Azure portal, select New > Compute > Function App.

    Creazione di un'app per le funzioni

  2. Nel pannello App per le funzioni immettere i valori seguenti e fare clic su OK per creare l'app:On the Function App blade, enter the following values, and then select OK to create the app:

    ImpostazioneSetting ValoreValue DettagliDetails
    Nome appApp name PacketCaptureExamplePacketCaptureExample Nome dell'app per le funzioni.The name of the function app.
    SottoscrizioneSubscription [Sottoscrizione]: sottoscrizione in cui creare l'app per le funzioni.[Your subscription]The subscription for which to create the function app.
    Gruppo di risorseResource Group PacketCaptureRGPacketCaptureRG Nome del gruppo di risorse che conterrà l'app per le funzioni.The resource group to contain the function app.
    Piano di hostingHosting Plan Piano a consumoConsumption Plan Tipo di piano usato dall'app per le funzioni.The type of plan your function app uses. Le opzioni sono Consumo e Piano di servizio app di Azure.Options are Consumption or Azure App Service plan.
    PosizioneLocation Stati Uniti centraliCentral US Area in cui creare l'app per le funzioni.The region in which to create the function app.
    Storage AccountStorage Account {generato automaticamente}{autogenerated} Account di archiviazione richiesto da Funzioni di Azure per l'archiviazione di uso generico.The storage account that Azure Functions needs for general-purpose storage.
  3. Nel pannello delle app per le funzioni PacketCaptureExample selezionare Funzioni > Funzione personalizzata >+.On the PacketCaptureExample Function Apps blade, select Functions > Custom function >+.

  4. Selezionare HttpTrigger-Powershell e quindi immettere le informazioni rimanenti.Select HttpTrigger-Powershell, and then enter the remaining information. Selezionare infine Crea per creare la funzione.Finally, to create the function, select Create.

    ImpostazioneSetting ValoreValue DettagliDetails
    ScenarioScenario SperimentaleExperimental Tipo di scenarioType of scenario
    Dare un nome alla funzioneName your function AlertPacketCapturePowerShellAlertPacketCapturePowerShell Nome della funzioneName of the function
    Livello di autorizzazioneAuthorization level FunzioneFunction Livello di autorizzazione per la funzioneAuthorization level for the function

Esempio di funzioni

Nota

Il modello di PowerShell è sperimentale e non dispone del supporto completo.The PowerShell template is experimental and does not have full support.

Per questo esempio sono richieste alcune personalizzazioni illustrate nei passaggi seguenti.Customizations are required for this example and are explained in the following steps.

Aggiungere moduliAdd modules

Per usare i cmdlet PowerShell di Network Watcher, caricare il modulo PowerShell più recente nell'app per le funzioni.To use Network Watcher PowerShell cmdlets, upload the latest PowerShell module to the function app.

  1. Nel computer locale con i moduli di Azure PowerShell più recenti installati, eseguire il seguente comando PowerShell:On your local machine with the latest Azure PowerShell modules installed, run the following PowerShell command:

    (Get-Module AzureRM.Network).Path
    

    Questo esempio visualizza il percorso locale dei moduli di Azure PowerShell.This example gives you the local path of your Azure PowerShell modules. Queste cartelle verranno usate in un passaggio successivo.These folders are used in a later step. I moduli usati in questo scenario sono:The modules that are used in this scenario are:

    • AzureRM.NetworkAzureRM.Network

    • AzureRM.ProfileAzureRM.Profile

    • AzureRM.ResourcesAzureRM.Resources

      Cartelle di PowerShell

  2. Selezionare Impostazioni dell'app per le funzioni > Passa all'editor del servizio app.Select Function app settings > Go to App Service Editor.

    Impostazioni dell'app per le funzioni

  3. Fare clic con il pulsante destro del mouse sulla cartella AlertPacketCapturePowershell e quindi creare una cartella denominata azuremodules.Right-click the AlertPacketCapturePowershell folder, and then create a folder called azuremodules.

  4. Creare una sottocartella per ogni modulo necessario.Create a subfolder for each module that you need.

    Cartelle e sottocartelle

    • AzureRM.NetworkAzureRM.Network

    • AzureRM.ProfileAzureRM.Profile

    • AzureRM.ResourcesAzureRM.Resources

  5. Fare clic con il pulsante destro del mouse sulla sottocartella AzureRM.Network e quindi scegliere Carica file.Right-click the AzureRM.Network subfolder, and then select Upload Files.

  6. Passare ai moduli di Azure.Go to your Azure modules. Nella cartella AzureRM.Network locale selezionare tutti i file presenti.In the local AzureRM.Network folder, select all the files in the folder. Selezionare OK.Then select OK.

  7. Ripetere questi passaggi per AzureRM.Profile e AzureRM.Resources.Repeat these steps for AzureRM.Profile and AzureRM.Resources.

    Caricare file

  8. Al termine, ogni cartella dovrebbe includere i file dei moduli di PowerShell del computer locale.After you've finished, each folder should have the PowerShell module files from your local machine.

    File di PowerShell

AutenticazioneAuthentication

Per usare i cmdlet PowerShell, è necessario eseguire l'autenticazione,To use the PowerShell cmdlets, you must authenticate. L'autenticazione viene configurata nell'app per le funzioni.You configure authentication in the function app. Per configurare l'autenticazione è necessario definire le variabili di ambiente e caricare un file di chiave crittografata nell'app per le funzioni.To configure authentication, you must configure environment variables and upload an encrypted key file to the function app.

Nota

Questo scenario fornisce solo un esempio di come implementare l'autenticazione con Funzioni di Azure.This scenario provides just one example of how to implement authentication with Azure Functions. Per eseguire questa operazione è possibile procedere in altri modi.There are other ways to do this.

Credenziali crittografateEncrypted credentials

Lo script di PowerShell seguente crea un file di chiave denominato PassEncryptKey.keyThe following PowerShell script creates a key file called PassEncryptKey.key. e mette a disposizione una versione crittografata della password fornita.It also provides an encrypted version of the password that's supplied. Questa password è la stessa che viene definita per l'applicazione di Azure Active Directory usata per l'autenticazione.This password is the same password that is defined for the Azure Active Directory application that's used for authentication.

#Variables
$keypath = "C:\temp\PassEncryptKey.key"
$AESKey = New-Object Byte[] 32
$Password = "<insert a password here>"

#Keys
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey) 
Set-Content $keypath $AESKey

#Get encrypted password
$secPw = ConvertTo-SecureString -AsPlainText $Password -Force
$AESKey = Get-content $KeyPath
$Encryptedpassword = $secPw | ConvertFrom-SecureString -Key $AESKey
$Encryptedpassword

Nell'editor del servizio app dell'app per le funzioni creare una cartella denominata keys in AlertPacketCapturePowerShell.In the App Service Editor of the function app, create a folder called keys under AlertPacketCapturePowerShell. Caricare quindi il file PassEncryptKey.key creato nell'esempio di PowerShell precedente.Then upload the PassEncryptKey.key file that you created in the previous PowerShell sample.

Chiave delle funzioni

Recuperare i valori per le variabili di ambienteRetrieve values for environment variables

L'ultimo requisito consiste nel configurare le variabili di ambiente necessarie per accedere ai valori per l'autenticazione.The final requirement is to set up the environment variables that are necessary to access the values for authentication. Di seguito è riportato un elenco delle variabili di ambiente create:The following list shows the environment variables that are created:

  • AzureClientIDAzureClientID

  • AzureTenantAzureTenant

  • AzureCredPasswordAzureCredPassword

AzureClientIDAzureClientID

L'ID client è l'ID applicazione di un'applicazione in Azure Active Directory.The client ID is the Application ID of an application in Azure Active Directory.

  1. Se non esiste già un'applicazione da usare, eseguire questo esempio per crearne una.If you don't already have an application to use, run the following example to create an application.

    $app = New-AzureRmADApplication -DisplayName "ExampleAutomationAccount_MF" -HomePage "https://exampleapp.com" -IdentifierUris "https://exampleapp1.com/ExampleFunctionsAccount" -Password "<same password as defined earlier>"
    New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId
    Start-Sleep 15
    New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $app.ApplicationId
    

    Nota

    La password usata per la creazione dell'applicazione deve essere la stessa creata in precedenza durante il salvataggio del file di chiave.The password that you use when creating the application should be the same password that you created earlier when saving the key file.

  2. Nel portale di Azure selezionare Sottoscrizioni.In the Azure portal, select Subscriptions. Selezionare la sottoscrizione da usare e quindi fare clic su Controllo di accesso (IAM).Select the subscription to use, and then select Access control (IAM).

    IAM delle funzioni

  3. Scegliere l'account da usare e quindi selezionare Proprietà.Choose the account to use, and then select Properties. Copiare l'ID applicazione.Copy the Application ID.

    ID applicazione per le funzioni

AzureTenantAzureTenant

Ottenere l'ID tenant eseguendo questo esempio di PowerShell:Obtain the tenant ID by running the following PowerShell sample:

(Get-AzureRmSubscription -SubscriptionName "<subscriptionName>").TenantId

AzureCredPasswordAzureCredPassword

Il valore della variabile di ambiente AzureCredPassword è il valore ottenuto eseguendo questo esempio di PowerShell.The value of the AzureCredPassword environment variable is the value that you get from running the following PowerShell sample. Si tratta dello stesso esempio riportato nella sezione Credenziali crittografate precedente.This example is the same one that's shown in the preceding Encrypted credentials section. Il valore richiesto è l'output della variabile $Encryptedpassword.The value that's needed is the output of the $Encryptedpassword variable. Si tratta della password dell'entità servizio crittografata tramite lo script di PowerShell.This is the service principal password that you encrypted by using the PowerShell script.

#Variables
$keypath = "C:\temp\PassEncryptKey.key"
$AESKey = New-Object Byte[] 32
$Password = "<insert a password here>"

#Keys
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey) 
Set-Content $keypath $AESKey

#Get encrypted password
$secPw = ConvertTo-SecureString -AsPlainText $Password -Force
$AESKey = Get-content $KeyPath
$Encryptedpassword = $secPw | ConvertFrom-SecureString -Key $AESKey
$Encryptedpassword

Archiviare le variabili di ambienteStore the environment variables

  1. Passare all'app per le funzioni.Go to the function app. Selezionare quindi Impostazioni dell'app per le funzioni > Configurare le impostazioni dell'app.Then select Function app settings > Configure app settings.

    Configurare le impostazioni applicazione

  2. Aggiungere le variabili di ambiente e i relativi valori alle impostazioni dell'app e quindi fare clic su Salva.Add the environment variables and their values to the app settings, and then select Save.

    Impostazioni app

Aggiunta di PowerShell alla funzioneAdd PowerShell to the function

A questo punto è necessario chiamare Network Watcher dalla funzione di Azure.It's now time to make calls into Network Watcher from within the Azure function. L'implementazione di questa funzione può variare a seconda dei requisiti.Depending on the requirements, the implementation of this function can vary. Il flusso generale del codice è tuttavia il seguente:However, the general flow of the code is as follows:

  1. Elaborare i parametri di input.Process input parameters.
  2. Eseguire una query sulle acquisizioni di pacchetti esistenti per verificare i limiti e risolvere i conflitti di nomi.Query existing packet captures to verify limits and resolve name conflicts.
  3. Creare un'acquisizione di pacchetti con i parametri appropriati.Create a packet capture with appropriate parameters.
  4. Eseguire periodicamente il polling dell'acquisizione di pacchetti fino al completamento.Poll packet capture periodically until it's complete.
  5. Notificare all'utente che la sessione di acquisizione di pacchetti è completa.Notify the user that the packet capture session is complete.

L'esempio seguente è codice PowerShell che può essere usato nella funzione.The following example is PowerShell code that can be used in the function. È necessario sostituire i valori per subscriptionId, resourceGroupName e storageAccountName.There are values that need to be replaced for subscriptionId, resourceGroupName, and storageAccountName.

            #Import Azure PowerShell modules required to make calls to Network Watcher
            Import-Module "D:\home\site\wwwroot\AlertPacketCapturePowerShell\azuremodules\AzureRM.Profile\AzureRM.Profile.psd1" -Global
            Import-Module "D:\home\site\wwwroot\AlertPacketCapturePowerShell\azuremodules\AzureRM.Network\AzureRM.Network.psd1" -Global
            Import-Module "D:\home\site\wwwroot\AlertPacketCapturePowerShell\azuremodules\AzureRM.Resources\AzureRM.Resources.psd1" -Global

            #Process alert request body
            $requestBody = Get-Content $req -Raw | ConvertFrom-Json

            #Storage account ID to save captures in
            $storageaccountid = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"

            #Packet capture vars
            $packetcapturename = "PSAzureFunction"
            $packetCaptureLimit = 10
            $packetCaptureDuration = 10

            #Credentials
            $tenant = $env:AzureTenant
            $pw = $env:AzureCredPassword
            $clientid = $env:AzureClientId
            $keypath = "D:\home\site\wwwroot\AlertPacketCapturePowerShell\keys\PassEncryptKey.key"

            #Authentication
            $secpassword = $pw | ConvertTo-SecureString -Key (Get-Content $keypath)
            $credential = New-Object System.Management.Automation.PSCredential ($clientid, $secpassword)
            Add-AzureRMAccount -ServicePrincipal -Tenant $tenant -Credential $credential #-WarningAction SilentlyContinue | out-null


            #Get the VM that fired the alert
            if($requestBody.context.resourceType -eq "Microsoft.Compute/virtualMachines")
            {
                Write-Output ("Subscription ID: {0}" -f $requestBody.context.subscriptionId)
                Write-Output ("Resource Group:  {0}" -f $requestBody.context.resourceGroupName)
                Write-Output ("Resource Name:  {0}" -f $requestBody.context.resourceName)
                Write-Output ("Resource Type:  {0}" -f $requestBody.context.resourceType)

                #Get the Network Watcher in the VM's region
                $nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $requestBody.context.resourceRegion}
                $networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName

                #Get existing packetCaptures
                $packetCaptures = Get-AzureRmNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher

                #Remove existing packet capture created by the function (if it exists)
                $packetCaptures | %{if($_.Name -eq $packetCaptureName)
                { 
                    Remove-AzureRmNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -PacketCaptureName $packetCaptureName
                }}

                #Initiate packet capture on the VM that fired the alert
                if ((Get-AzureRmNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher).Count -lt $packetCaptureLimit){
                    echo "Initiating Packet Capture"
                    New-AzureRmNetworkWatcherPacketCapture -NetworkWatcher $networkWatcher -TargetVirtualMachineId $requestBody.context.resourceId -PacketCaptureName $packetCaptureName -StorageAccountId $storageaccountid -TimeLimitInSeconds $packetCaptureDuration
                    Out-File -Encoding Ascii -FilePath $res -inputObject "Packet Capture created on ${requestBody.context.resourceID}"
                }
            } 

Recuperare l'URL della funzioneRetrieve the function URL

  1. Dopo avere creato la funzione, configurare l'avviso per chiamare l'URL associato alla funzione.After you've created your function, configure your alert to call the URL that's associated with the function. Per ottenere questo valore, copiare l'URL della funzione dall'app per le funzioni.To get this value, copy the function URL from your function app.

    Ricerca dell'URL della funzione

  2. Copiare l'URL della funzione per l'app per le funzioni.Copy the function URL for your function app.

    Copia dell'URL della funzione

Se sono necessarie proprietà personalizzate nel payload della richiesta POST del webhook, vedere Configurare un webhook in un avviso relativo alle metriche di Azure.If you require custom properties in the payload of the webhook POST request, refer to Configure a webhook on an Azure metric alert.

Configurare un avviso in una VMConfigure an alert on a VM

Si possono configurare avvisi per notificare alle singole persone quando una metrica specifica supera una soglia assegnata.Alerts can be configured to notify individuals when a specific metric crosses a threshold that's assigned to it. In questo esempio, l'avviso è sui segmenti TCP inviati, ma può essere attivato per molte altre metriche.In this example, the alert is on the TCP segments that are sent, but the alert can be triggered for many other metrics. In questo esempio viene configurato un avviso per chiamare un webhook per chiamare la funzione.In this example, an alert is configured to call a webhook to call the function.

Creare la regola di avvisoCreate the alert rule

Passare a una macchina virtuale esistente, quindi aggiungere una regola di avviso.Go to an existing virtual machine, and then add an alert rule. Per informazioni più dettagliate sulla configurazione di avvisi, vedere Creazione di avvisi in Monitoraggio di Azure per i servizi Azure - Portale di Azure.More detailed documentation about configuring alerts can be found at Create alerts in Azure Monitor for Azure services - Azure portal. Immettere i valori seguenti nel pannello Regola di avviso e fare clic su OK.Enter the following values in the Alert rule blade, and then select OK.

ImpostazioneSetting ValoreValue DettagliDetails
NomeName TCP_Segments_Sent_ExceededTCP_Segments_Sent_Exceeded Nome della regola di avviso.Name of the alert rule.
DescrizioneDescription Soglia superata segmenti TCP inviatiTCP segments sent exceeded threshold Descrizione della regola di avviso.The description for the alert rule.
MetricaMetric Segmenti TCP inviatiTCP segments sent La metrica da utilizzare per attivare l'avviso.The metric to use to trigger the alert.
ConditionCondition Maggiore diGreater than La condizione da utilizzare per valutare la metrica.The condition to use when evaluating the metric.
SogliaThreshold 100100 Valore della metrica che attiva l'avviso.The value of the metric that triggers the alert. Deve trattarsi di un valore valido per l'ambiente in uso.This value should be set to a valid value for your environment.
PeriodoPeriod Negli ultimi cinque minutiOver the last five minutes Determina il periodo in cui cercare la soglia per la metrica.Determines the period in which to look for the threshold on the metric.
WebhookWebhook [URL webhook dell'app per le funzioni][webhook URL from function app] URL webhook dall'app per le funzioni creata nei passaggi precedenti.The webhook URL from the function app that was created in the previous steps.

Nota

La metrica di segmenti TCP non è abilitata per impostazione predefinita.The TCP segments metric is not enabled by default. Per altre informazioni su come abilitare metriche aggiuntive, vedere Abilitare il monitoraggio e la diagnostica.Learn more about how to enable additional metrics by visiting Enable monitoring and diagnostics.

Esaminare i risultatiReview the results

Dopo i criteri di attivazione dell'avviso, viene creata l'acquisizione di pacchetti.After the criteria for the alert triggers, a packet capture is created. Passare a Network Watcher e quindi selezionare Acquisizione pacchetti.Go to Network Watcher, and then select Packet capture. In questa pagina è possibile fare clic sul collegamento del file di acquisizione pacchetti per scaricare l'acquisizione di pacchetti.On this page, you can select the packet capture file link to download the packet capture.

Visualizzare l'acquisizione di pacchetti

Se il file di acquisizione è archiviato in locale, è possibile recuperarlo accedendo alla macchina virtuale.If the capture file is stored locally, you can retrieve it by signing in to the virtual machine.

Per istruzioni relative al download di file dagli account di archiviazione di Azure, vedere Introduzione all'archivio BLOB di Azure con .NET.For instructions about downloading files from Azure storage accounts, see Get started with Azure Blob storage using .NET. Un altro strumento è Storage Explorer.Another tool you can use is Storage Explorer.

Dopo il download dell'acquisizione, è possibile visualizzarla con qualsiasi strumento per la lettura di un file .cap.After your capture has been downloaded, you can view it by using any tool that can read a .cap file. Di seguito i collegamenti a due di questi strumenti:Following are links to two of these tools:

Passaggi successiviNext steps

Per informazioni su come visualizzare le acquisizioni di pacchetti, vedere Analisi delle acquisizioni di pacchetti con Wireshark.Learn how to view your packet captures by visiting Packet capture analysis with Wireshark.