Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Come posso risolvere i problemi relativi alle prestazioni di rete tra le istanze EC2 Linux o Windows in un VPC e un host on-premise tramite il gateway Internet?
Desidero risolvere i problemi di perdita di pacchetti o latenza tra le mie istanze Amazon Elastic Compute Cloud (Amazon EC2) in un Amazon Virtual Private Cloud (Amazon VPC) e un host locale tramite il gateway Internet.
Breve descrizione
Per diagnosticare problemi di rete come la perdita di pacchetti o la latenza, prova innanzitutto la rete per isolare l'origine del problema. Prima di risolvere il problema, è consigliabile eseguire un benchmark dei risultati prestazionali.
Prerequisiti:
- Assicurati che le utilità di rete siano installate su entrambi gli endpoint (sull'istanza EC2 e sull'host on-premise).
- Usa un'istanza EC2 che supporti una rete avanzata e assicurati che i driver siano aggiornati. Se la rete avanzata non è attiva, consulta Troubleshoot the ENA kernel driver on Linux o Troubleshoot the Elastic Network Adapter Windows driver.
- Connettiti alla tua istanza EC2 per accedere alle istanze. Verifica la connettività end-to-end tra la tua istanza EC2 e il tuo host locale.
Risoluzione
Installa i seguenti strumenti per risolvere i problemi e testare la tua rete:
- AWSSupport-SetupIpMonitoringFromVPC per raccogliere metriche di rete come perdita di pacchetti, latenza, MTR, tcptraceroute e tracepath.
- MTR per verificare la perdita di pacchetti ICMP o TCP e i problemi di latenza.
- Traceroute per determinare problemi di latenza o di routing.
- Hping3 per determinare la perdita di pacchetti TCP end-to-end e i problemi di latenza.
- Tcpdump per analizzare esempi di acquisizione di pacchetti.
Rivedere i report traceroute o MTR
Esamina gli hop sui rapporti Traceroute o MTR utilizzando un approccio bottom-up. Con un approccio dal basso verso l'alto, controllate prima le perdite sull'ultimo salto o destinazione, quindi esaminate i salti precedenti.
- Se i problemi di perdita o latenza dei pacchetti persistono fino all'ultimo hop, potrebbe esserci un problema di rete o di routing.
- Se esiste un limite di velocità del piano di controllo su quel nodo, potrebbe verificarsi una perdita di pacchetti o una latenza su un hop nel percorso.
- Controlla se l'ultimo hop segnalato è la destinazione indicata nel comando. Se l'ultimo hop non viene annotato, potrebbe esserci un problema causato da un gruppo di sicurezza restrittivo.
Test delle prestazioni utilizzando AWSSupport-SetupIpMonitoringFromVPC
Questo strumento integrato raccoglie molte delle metriche necessarie per risolvere i problemi di rete. Per ulteriori informazioni, consulta Strumento di debug per la connettività di rete di Amazon VPC.
Risoluzione dei problemi di prestazioni per le istanze Linux
Controllare le statistiche sulle prestazioni di Linux
Se hai accesso all'istanza di origine o all'istanza di destinazione, verifica la presenza di problemi con la CPU, l'utilizzo della memoria e la media del carico.
Test delle prestazioni con MTR
Il comando MTR Linux fornisce un output continuo e aggiornato. Questo strumento diagnostico combina le funzionalità delle utilità traceroute e ping. L'output di questo strumento consente di analizzare le prestazioni della rete. La maggior parte delle distribuzioni Linux è dotata di traceroute e MTR preinstallati. È possibile anche scaricarlo dal gestore di pacchetti software della tua distribuzione.
Per installare MTR, esegui i seguenti comandi:
Amazon Linux:
sudo yum install mtr
Ubuntu:
sudo apt-get install mtr-tiny
Per testare le prestazioni della tua rete utilizzando MTR, esegui questo test in modo bidirezionale tra l'indirizzo IP pubblico delle tue istanze EC2 e il tuo host on-premise. Il percorso tra i nodi su una rete TCP/IP può cambiare quando la direzione viene invertita. È consigliabile ottenere risultati MTR per entrambe le direzioni. È possibile utilizzare una traccia basata su TCP anziché ICMP, poiché la maggior parte dei dispositivi Internet deprioritizza le richieste di tracciamento basate su ICMP.
Controlla la perdita di pacchetti. La perdita di pacchetti su un singolo hop di solito non indica un problema. La perdita può essere il risultato di una policy del piano di controllo che causa l'eliminazione dei messaggi “tempo ICMP superato”. Se si nota una perdita prolungata di pacchetti fino all'hop di destinazione o una perdita di pacchetti su più passaggi, questa perdita potrebbe indicare un problema.
Nota: è normale che alcune richieste scadano.
Sostituisci PUBLIC\ _IP con l'host locale dell'istanza EC2 IP pubblica.
MTR basato su ICMP:
mtr -n -c 200 PUBLIC_IP --report
MTR basato su TCP:
mtr -n -T -c 200 PUBLIC_IP --report
L'argomento -T esegue un MTR basato su TCP e l'opzione report imposta MTR in modalità report. MTR viene eseguito per il numero di cicli specificato dall'opzione -c. Stampa le statistiche e poi esci.
Nota: l'MTR basato su TCP verifica la porta TCP di destinazione 80, su MTR una porta TCP di destinazione specifica, aggiunta con -P, seguita dal numero di porta. Di seguito è riportato un esempio della porta TCP di destinazione MTR 443:
mtr -n -T -c 200 PUBLIC_IP -P 443 --report
**Test delle prestazioni utilizzando traceroute **
L'utilità Linux traceroute identifica il percorso da un nodo client al nodo di destinazione. L'utilità registra il tempo in millisecondi impiegato da ciascun router per rispondere alla richiesta. L'utilità calcola anche il tempo impiegato da ogni hop prima di raggiungere la destinazione.
Per installare traceroute, effettua i seguenti comandi:
Amazon Linux:
sudo yum install traceroute
Ubuntu:
sudo apt-get update
`sudo apt-get install traceroute`
Nota: traceroute non è necessario se esegui un rapporto MTR. MTR fornisce statistiche sulla latenza e sulla perdita di pacchetti verso una destinazione.
Assicurati che la porta 22 o la porta che stai testando sia aperta in entrambe le direzioni. Per risolvere i problemi di connettività di rete tramite traceroute, esegui il comando dal client al server. Quindi, esegui il comando dal server al client. Il percorso tra i nodi su una rete TCP/IP può cambiare se la direzione è invertita. Utilizza invece una traccia basata su TCP (la porta dell'applicazione) di ICMP, poiché la maggior parte dei dispositivi Internet deprioritizza le richieste di traccia basate su ICMP.
Traceroute basato su ICMP:
sudo traceroute -I PUBLIC_IP
Traceroute basato su TCP:
sudo traceroute -n -T -p 22 PUBLIC_IP
L'argomento -T -p 22 -n esegue una traccia basata su TCP sulla porta 22.
Nota: è possibile utilizzare la porta specifica dell'applicazione per i test. Usa la porta specifica per capire se nel percorso sono presenti dispositivi intermedi che interrompono il traffico dell'applicazione.
Test delle prestazioni con hping3
Hping3 è un assemblatore e analizzatore di pacchetti TCP/IP orientato alla linea di comando che misura la perdita e la latenza di pacchetti end-to-end su una connessione TCP. Scarica hping3 dal sito Die.net.
Oltre alle richieste echo ICMP, hping3 supporta i protocolli TCP, UDP e RAW-IP. Hping3 include anche una modalità traceroute che può inviare file tra un canale coperto. Hping3 è progettato per analizzare gli host, assistere nei test di penetrazione (pen-test), testare i sistemi di rilevamento delle intrusioni e scambiare file tra host.
Gli MTR e il traceroute acquisiscono la latenza per hop. Tuttavia, oltre alla perdita di pacchetti, i risultati di hping3 mostrano una latenza min/avg/max end-to-end su TCP.
Per installare hping3, esegui i seguenti comandi:
Amazon Linux 2:
Installa il pacchetto di release EPEL per RHEL 7, quindi attiva l'archivio EPEL.
sudo amazon-linux-extras install epel -y
Amazon Linux 2:
sudo yum --enablerepo=epel install hping3
Ubuntu:
sudo apt-get install hping3
Il comando seguente invia 50 pacchetti TCP SYN sulla porta 0. Per impostazione predefinita, hping3 invia le intestazioni TCP alla porta 0 dell'host di destinazione, con una finestra di 64 dimensioni e senza un flag TCP:
sudo hping3 -S -c 50 -V PUBLIC_IP
Il comando seguente invia 50 pacchetti TCP SYN sulla porta 22:
sudo hping3 -S -c 50 -V PUBLIC_IP -p 22
Nota: assicurati che la porta 22 o la porta che stai testando sia aperta.
Test di esempi di acquisizione di pacchetti utilizzando tcpdump
È consigliabile eseguire l'acquisizione simultanea di pacchetti sull'istanza EC2 e sull'host locale quando si diagnosticano problemi di perdita/latenza dei pacchetti. Ciò può consentire di identificare i pacchetti di richiesta e risposta in modo da poter isolare il problema a livello di rete e applicazione. È inoltre consigliabile avviare prima l'acquisizione dei pacchetti e quindi avviare il traffico. Questo ordine di azione consente di acquisire tutti i pacchetti per il flusso.
Per installare tcpdump, esegui i seguenti comandi:
Amazon Linux:
sudo yum install tcpdump
Ubuntu:
sudo apt-get install tcpdump
Dopo aver installato ** tcpdump**, esegui il seguente comando per catturare il traffico della porta tcp 22 e quindi salvare l'output in un file pcap.
sudo tcpdump -i eth0 port 22 -s0 -w samplecapture.pcap
**Nota:**Il flag tcpdump -i specifica l'interfaccia sull'istanza in cui tcpdump cattura il traffico. Potrebbe essere necessario modificare l'interfaccia da eth0 all'interfaccia configurata nel proprio ambiente.
Risoluzione dei problemi relativi alle prestazioni per Windows
Verificare la funzionalità ECN
-
Esegui il comando seguente per determinare se la funzionalità Explicit Congestion Notification (ECN) è attivata:
netsh interface tcp show global
-
Se la funzionalità ECN è attivata, esegui il seguente comando per disattivarla:
- netsh interface tcp set global ecncapability=disabled
-
Se non vedi un miglioramento delle prestazioni, esegui il comando seguente per riattivare la funzionalità ECN:
netsh interface tcp set global ecncapability=enabled
Esaminare gli hop e risolvere i problemi di connettività delle porte TCP
Innanzitutto, usa MTR o tracert per esaminare gli hop.
Metodo MTR:
- Scarica e installa WinMTR dal sito Web SourceForge.net.
- Inserisci l'IP di destinazione nella sezione Host, quindi scegli Avvia.
- Lascia che il test venga eseguito per un minuto, quindi scegli Arresta.
- Scegli Copia testo negli appunti e incolla il risultato in un file di testo.
- Cerca eventuali perdite nella colonna % che vengono propagate alla destinazione.
Nota: ignora gli eventuali hop con il messaggio Nessuna risposta dall'host. Questo messaggio indica che quei particolari salti non rispondono ai probe ICMP. - Esamina i salti sui rapporti MTR utilizzando un approccio dal basso verso l'alto. Ad esempio, verifica la presenza di perdite nell'ultimo salto o nell'ultima destinazione, quindi esamina i salti precedenti.
Metodo Tracert:
Se non desideri installare MTR, puoi utilizzare lo strumento di utilità dei comandi tracert.
-
Esegui un tracert sull'URL o sull'indirizzo IP di destinazione.
-
Ricerca qualsiasi hop che mostri un brusco picco nel tempo di andata e ritorno (RTT). Un brusco picco di RTT potrebbe indicare che c'è un nodo sottoposto a un carico elevato. Questo carico può indurre latenza o cali di pacchetti nel traffico.
Nota: l'opzione -d non risolve gli indirizzi IP in nomi host. Rimuovere -d se è richiesta la risoluzione da IP a nome host.tracert -d PUBLIC_IP
-
Quindi, controlla la connettività della porta TCP.
Nota: poiché WinMTR e tracert sono entrambi basati su ICMP, è possibile utilizzare tracetcp per risolvere i problemi di connettività delle porte TCP.
- Scarica il file ZIP tracetcp dal sito Web NetworkHunt.com.
- Estrai il file ZIP tracetcp.
- Copia tracetcp.exe nell'unità C.
- Scarica e installa WinPcap dal sito Web WinPCAP.org.
- Apri il prompt dei comandi ed esegui il root di WinPcap nell'unità C utilizzando il comando C:\Users\username>cd.
- Per eseguire tracetcp, usa i seguenti comandi:
tracetcp.exehostname:port
-oppure-
tracetcp.exe ip:port
Controllare Gestione attività di Windows
Se hai accesso all'istanza di origine o all'istanza di destinazione, controlla Gestione attività di Windows. Cerca problemi con l'utilizzo della CPU e della memoria o il carico medio.
Effettua l'acquisizione di pacchetti
Nota: è consigliabile eseguire l'acquisizione simultanea di pacchetti sull'istanza EC2 e sull'host on-premise per diagnosticare problemi di latenza o perdita di pacchetti. Ciò consente di identificare i pacchetti di richiesta e risposta per isolare il problema a livello di rete e applicazione. È inoltre consigliabile avviare prima l'acquisizione dei pacchetti e quindi avviare il traffico. Queste azioni aiutano a catturare tutti i pacchetti per il flusso.
- Scarica e installa Wireshark dal sito Web Wireshark.org. Quindi, effettua l'acquisizione di pacchetti.
- Usa il seguente filtro per isolare il traffico tra fonti particolari nell'acquisizione dei pacchetti: (ip.addr eq source_IP) &&(tcp.flags.syn == 1).
L'output mostra tutti i flussi tcp avviati da quell'IP di origine. - Seleziona la riga con l'IP di origine e l'IP di destinazione pertinenti.
- Scegli il menu contestuale (clic con il pulsante destro del mouse), quindi scegli Segui, Flusso TCP. Ciò si traduce in un flusso TCP tra l'IP di origine e l'IP di destinazione che si desidera esaminare.
- Cerca ritrasmissioni, pacchetti duplicati o notifiche delle dimensioni di una finestra TCP come finestra TCP completa o finestra dimensione zero. Queste notifiche potrebbero indicare che lo spazio disponibile nei buffer TCP sta esaurendo.
Se riscontri una perdita di pacchetti o se il numero di hop cambia in modo significativo rispetto ai benchmark, consulta la documentazione del fornitore delle apparecchiature di rete. Se lavori in un ambiente di rete multi-home, esegui questi test utilizzando un ISP diverso.

Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 3 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata un anno fa