Ispezione dei pacchetti con Azure Network WatcherPacket inspection with Azure Network Watcher

Usando la funzionalità di acquisizione di pacchetti di Network Watcher, è possibile avviare e gestire sessioni di acquisizioni nelle VM di Azure dal portale, da PowerShell, dall'interfaccia della riga di comando e a livello di codice tramite l'SDK e l'API REST.Using the packet capture feature of Network Watcher, you can initiate and manage captures sessions on your Azure VMs from the portal, PowerShell, CLI, and programmatically through the SDK and REST API. L'acquisizione di pacchetti consente di gestire scenari in cui sono necessari dati a livello di pacchetto fornendo le informazioni in un formato subito utilizzabile.Packet capture allows you to address scenarios that require packet level data by providing the information in a readily usable format. Sfruttando gli strumenti disponibili gratuitamente per ispezionare i dati, è possibile esaminare le comunicazioni inviate alle e dalle VM e ottenere informazioni dettagliate sul traffico di rete.Leveraging freely available tools to inspect the data, you can examine communications sent to and from your VMs and gain insights into your network traffic. Alcuni esempi di uso dei dati di acquisizione di pacchetti includono: esame dei problemi della rete o delle applicazioni, rilevamento dell'uso improprio della rete e dei tentativi di intrusione o gestione della conformità alle normative.Some example uses of packet capture data include: investigating network or application issues, detecting network misuse and intrusion attempts, or maintaining regulatory compliance. In questo articolo viene illustrato come aprire un file di acquisizione di pacchetti fornito da Network Watcher usando un diffuso strumento open source.In this article, we show how to open a packet capture file provided by Network Watcher using a popular open source tool. Verranno anche forniti esempi che illustrano come calcolare la latenza di una connessione, identificare il traffico anomalo ed esaminare le statistiche di rete.We will also provide examples showing how to calculate a connection latency, identify abnormal traffic, and examine networking statistics.

Prima di iniziareBefore you begin

Questo articolo descrive alcuni scenari preconfigurati in un'acquisizione di pacchetti eseguita prima.This article goes through some pre-configured scenarios on a packet capture that was run previously. Gli scenari esaminano un'acquisizione di pacchetti per illustrare le funzionalità accessibili.These scenarios illustrate capabilities that can be accessed by reviewing a packet capture. Questo scenario usa WireShark per ispezionare l'acquisizione di pacchetti.This scenario uses WireShark to inspect the packet capture.

Questo scenario presume che sia già stata eseguita un'acquisizione di pacchetti in una macchina virtuale.This scenario assumes you already ran a packet capture on a virtual machine. Per informazioni su come creare un'acquisizione di pacchetti, vedere Manage packet captures with the portal (Gestire le acquisizioni di pacchetti con il portale) o Managing Packet Captures with REST API (Gestione di acquisizioni di pacchetti con l'API REST).To learn how to create a packet capture visit Manage packet captures with the portal or with REST by visiting Managing Packet Captures with REST API.

ScenarioScenario

In questo scenario:In this scenario, you:

  • Si esamina un'acquisizione di pacchettiReview a packet capture

Calcolare la latenza di reteCalculate network latency

In questo scenario viene illustrato come visualizzare il tempo di round trip (RTT, Round Trip Time) di una conversazione TCP (Transmission Control Protocol) che avviene tra due endpoint.In this scenario, we show how to view the initial Round Trip Time (RTT) of a Transmission Control Protocol (TCP) conversation occurring between two endpoints.

Quando viene stabilita una connessione TCP, i primi tre pacchetti inviati nella connessione seguono un modello chiamato in genere handshake a tre livelli.When a TCP connection is established, the first three packets sent in the connection follow a pattern commonly referred to as the three-way handshake. Esaminando i primi due pacchetti inviati in questo handshake, una richiesta iniziale dal client e una risposta dal server, è possibile calcolare la latenza quando questa connessione viene stabilita.By examining the first two packets sent in this handshake, an initial request from the client and a response from the server, we can calculate the latency when this connection was established. Questa latenza è chiamata tempo di round trip.This latency is referred to as the Round Trip Time (RTT). Per altre informazioni sul protocollo TCP e l'handshake a tre livelli, vedere la risorsa seguente.For more information on the TCP protocol and the three-way handshake refer to the following resource. https://support.microsoft.com/it-it/help/172983/explanation-of-the-three-way-handshake-via-tcp-iphttps://support.microsoft.com/en-us/help/172983/explanation-of-the-three-way-handshake-via-tcp-ip

Passaggio 1Step 1

Avviare WireSharkLaunch WireShark

Passaggio 2Step 2

Caricare il file con estensione cap dall'acquisizione di pacchetti.Load the .cap file from your packet capture. Questo file si trova nel BLOB se è stato salvato in locale nella macchina virtuale, a seconda della configurazione eseguita.This file can be found in the blob it was saved in our locally on the virtual machine, depending on how you configured it.

Passaggio 3Step 3

Per visualizzare il tempo di round trip iniziale nelle conversazioni TCP, verranno esaminati solo i primi due pacchetti coinvolti nell'handshake TCP.To view the initial Round Trip Time (RTT) in TCP conversations, we will only be looking at the first two packets involved in the TCP handshake. Nell'handshake a tre livelli verranno usati i primi due pacchetti, ovvero [SYN] e [SYN, ACK].We will be using the first two packets in the three-way handshake, which are the [SYN], [SYN, ACK] packets. Il nome deriva dai flag impostati nell'intestazione TCP.They are named for flags set in the TCP header. L'ultimo pacchetto nell'handshake, il pacchetto [ACK], non verrà usato in questo scenario.The last packet in the handshake, the [ACK] packet, will not be used in this scenario. Il pacchetto [SYN] viene inviato dal client.The [SYN] packet is sent by the client. Dopo che è stato ricevuto, il server invia il pacchetto [ACK] come acknowledgement della ricezione di SYN dal client.Once it is received the server sends the [ACK] packet as an acknowledgement of receiving the SYN from the client. Sfruttando il fatto che la risposta del server richiede un overhead molto basso, il tempo RTT viene calcolato sottraendo dall'ora in cui il pacchetto [SYN, ACK] è stato ricevuto dal client l'ora in cui il pacchetto [SYN] è stato inviato dal client.Leveraging the fact that the server’s response requires very little overhead, we calculate the RTT by subtracting the time the [SYN, ACK] packet was received by the client by the time [SYN] packet was sent by the client.

Usando WireShark questo valore viene calcolato automaticamente.Using WireShark this value is calculated for us.

Per visualizzare più facilmente i primi due pacchetti nell'handshake a tre livelli TCP, verrà utilizzata la funzionalità di filtro di WireShark.To more easily view the first two packets in the TCP three-way handshake, we will utilize the filtering capability provided by WireShark.

Per applicare il filtro in WireShark, espandere il segmento "Transmission Control Protocol" di un pacchetto [SYN] nell'acquisizione ed esaminare i flag impostati nell'intestazione TCP.To apply the filter in WireShark, expand the “Transmission Control Protocol” Segment of a [SYN] packet in your capture and examine the flags set in the TCP header.

Poiché si vogliono filtrare i pacchetti [SYN] e [SYN, ACK], nei flag seguenti verificare che il bit Syn sia impostato su 1, quindi fare clic con il pulsante destro del mouse sul bit Syn -> Apply as Filter (Applica come filtro) -> Selezionato.Since we are looking to filter on all [SYN] and [SYN, ACK] packets, under flags cofirm that the Syn bit is set to 1, then right click on the Syn bit -> Apply as Filter -> Selected.

Figura 7

Passaggio 4Step 4

Dopo avere filtrato la finestra per visualizzare solo i pacchetti con il bit [SYN] impostato, è possibile selezionare facilmente le conversazioni a cui si è interessati per visualizzare il tempo RTT iniziale.Now that you have filtered the window to only see packets with the [SYN] bit set, you can easily select conversations you are interested in to view the initial RTT. Per visualizzare facilmente il tempo RTT in WireShark, è sufficiente fare clic sul menu a discesa dell'analisi "SEQ/ACK".A simple way to view the RTT in WireShark simply click the dropdown marked “SEQ/ACK” analysis. Verrà quindi visualizzato il tempo RTT.You will then see the RTT displayed. In questo caso, il tempo RTT era 0,0022114 secondi o 2,211 ms.In this case, the RTT was 0.0022114 seconds, or 2.211 ms.

Figura 8

Protocolli indesideratiUnwanted protocols

In un'istanza di una macchina virtuale distribuita in Azure potrebbero essere in esecuzione più applicazioni.You can have many applications running on a virtual machine instance you have deployed in Azure. Molte di queste applicazioni comunicano in rete, a volte senza esplicita autorizzazione.Many of these applications communicate over the network, perhaps without your explicit permission. Usando l'acquisizione di pacchetti per archiviare la comunicazione di rete, è possibile esaminare come le applicazioni comunicano in rete e cercare eventuali problemi.Using packet capture to store network communication, we can investigate how application are talking on the network and look for any issues.

In questo esempio viene esaminata un'acquisizione di pacchetti già eseguita per trovare protocolli indesiderati che potrebbero indicare una comunicazione non autorizzata da un'applicazione in esecuzione nel computer.In this example, we review a previous ran packet capture for unwanted protocols that may indicate unauthorized communication from an application running on your machine.

Passaggio 1Step 1

Usando la stessa acquisizione dello scenario precedente, fare clic su Statistics (Statistiche) > Protocol Hierarchy (Gerarchia protocolli)Using the same capture in the previous scenario click Statistics > Protocol Hierarchy

Menu Protocol Hierarchy (Gerarchia protocolli)

Verrà visualizzata la finestra della gerarchia dei protocolli.The protocol hierarchy window appears. Questa visualizzazione fornisce un elenco di tutti i protocolli usati durante la sessione di acquisizione e il numero di pacchetti trasmessi e ricevuti usando i protocolli.This view provides a list of all the protocols that were in use during the capture session and the number of packets transmitted and received using the protocols. Si tratta di una visualizzazione utile per trovare il traffico di rete indesiderato nelle macchine virtuali o in rete.This view can be useful for finding unwanted network traffic on your virtual machines or network.

Gerarchia dei protocolli aperta

Come si può osservare nell'acquisizione della schermata seguente, parte del traffico usava il protocollo BitTorrent, che viene usato per la condivisione di file peer-to-peer.As you can see in the following screen capture, there was traffic using the BitTorrent protocol, which is used for peer to peer file sharing. Un amministratore non si aspetta di trovare traffico BitTorrent in queste particolari macchine virtuali.As an administrator you do not expect to see BitTorrent traffic on this particular virtual machines. Dopo avere trovato questo tipo di traffico, è possibile rimuovere il software peer-to-peer installato in questa macchina virtuale o bloccare il traffico usando i gruppi di sicurezza di rete o un firewall.Now you aware of this traffic, you can remove the peer to peer software that installed on this virtual machine, or block the traffic using Network Security Groups or a Firewall. È anche possibile scegliere di eseguire le acquisizioni di pacchetti in base a una pianificazione per poter esaminare periodicamente l'uso del protocollo nelle macchine virtuali.Additionally, you may elect to run packet captures on a schedule, so you can review the protocol use on your virtual machines regularly. Per un esempio di come automatizzare le attività di rete in Azure, vedere Monitor network resources with azure automation (Monitorare le risorse di rete con Automazione di Azure)For an example on how to automate network tasks in azure visit Monitor network resources with azure automation

Ricerca di porte e destinazioni principaliFinding top destinations and ports

Conoscere i tipi di traffico, gli endpoint e le porte attraverso cui avviene la comunicazione è importante quando si monitorano o si risolvono i problemi delle applicazioni e delle risorse nella rete.Understanding the types of traffic, the endpoints, and the ports communicated over is an important when monitoring or troubleshooting applications and resources on your network. Utilizzando un file di acquisizione di pacchetti già usato, è possibile conoscere rapidamente le destinazioni principali con cui comunica la VM e le porte utilizzate.Utilizing a packet capture file from above, we can quickly learn the top destinations our VM is communicating with and the ports being utilized.

Passaggio 1Step 1

Usando la stessa acquisizione dello scenario precedente, fare clic su Statistics (Statistiche) > IPv4 Statistics (Statistiche IPv4) > Destinations and Ports (Destinazioni e porte)Using the same capture in the previous scenario click Statistics > IPv4 Statistics > Destinations and Ports

Finestra di acquisizione di pacchetti

Passaggio 2Step 2

Tra i risultati si nota una riga in cui sono presenti più connessioni alla porta 111.As we look through the results a line stands out, there were multiple connections on port 111. La porta più usata è la 3389, che è un desktop remoto. Le altre sono porte dinamiche RPC.The most used port was 3389, which is remote desktop, and the remaining are RPC dynamic ports.

Anche se questo traffico può non essere significativo, la porta è però stata usata per diverse connessioni ed è sconosciuta all'amministratore.While this traffic may mean nothing, it is a port that was used for many connections and is unknown to the administrator.

Figura 5

Passaggio 3Step 3

Dopo avere trovato una porta anomala, è possibile filtrare l'acquisizione in base alla porta.Now that we have determined an out of place port we can filter our capture based on the port.

Il filtro in questo scenario sarà:The filter in this scenario would be:

tcp.port == 111

Si immette il testo del filtro precedente nella casella di testo del filtro e si preme INVIO.We enter the filter text from above in the filter textbox and hit enter.

Figura 6

Dai risultati è possibile osservare che tutto il traffico proviene da una macchina virtuale locale nella stessa subnet.From the results, we can see all the traffic is coming from a local virtual machine on the same subnet. Se l'origine di questo traffico non è ancora evidente, è possibile ispezionare meglio i pacchetti per determinare perché vengono eseguite queste chiamate sulla porta 111.If we still don’t understand why this traffic is occurring, we can further inspect the packets to determine why it is making these calls on port 111. Con queste informazioni è possibile eseguire l'azione appropriata.With this information we can take the appropriate action.

Passaggi successiviNext steps

Per informazioni sulle altre funzionalità di diagnostica di Network Watcher, vedere Azure network monitoring overview (Panoramica del monitoraggio della rete di Azure)Learn about the other diagnostic features of Network Watcher by visiting Azure network monitoring overview