Come posso risolvere la perdita di pacchetti sulla mia connessione AWS VPN?

6 minuti di lettura
0

Sto riscontrando una perdita di pacchetti costante o intermittente e problemi di latenza elevata con la mia connessione AWS Virtual Private Network (AWS VPN). Voglio sapere quali test eseguire per confermare che il problema non si verifica all'interno del mio Amazon Virtual Private Cloud (Amazon VPC).

Breve descrizione

Le cause della perdita di pacchetti possono variare in base allo spostamento del traffico Internet di AWS VPN tra la rete on-premise e Amazon VPC. È consigliabile isolare e verificare da dove proviene la perdita di pacchetti.

Risoluzione

Per determinare se hai raggiunto i limiti di rete, controlla gli host di origine e di destinazione per eventuali problemi di utilizzo delle risorse. È possibile trovare problemi di utilizzo delle risorse in valori come CPUUtilization, NetworkIn e NetworkOuto NetworkPacketsIn e NetworkPacketsOut.

Usare MTR per verificare la perdita e la latenza dei pacchetti ICMP o TCP

MTR fornisce un output continuamente aggiornato che consente di analizzare le prestazioni della rete nel tempo. Combina le funzionalità di traceroute e ping in un unico strumento di diagnostica di rete. Per verificare la perdita e la latenza dei pacchetti ICMP o TCP, installa lo strumento di rete MTR sulla tua istanza Amazon Elastic Compute Cloud (Amazon EC2) che si trova nel VPC.

Amazon Linux:

sudo yum install mtr

Ubuntu:

sudo apt-get install mtr

Windows:

Consulta il sito Web di SourceForge per installare WinMTR.

Nota: per il sistema operativo Windows (OS), WinMTR non supporta MTR basato su TCP.

Esegui i seguenti test tra l'indirizzo IP privato e pubblico per le istanze EC2 e l'host on-premise in modo bidirezionale. Poiché il percorso tra i nodi di una rete TCP/IP può cambiare quando la direzione viene invertita, ottieni risultati MTR da entrambe le direzioni.

Prima di eseguire i test, controlla le seguenti configurazioni:

  • Assicurati che le regole del gruppo di sicurezza e della lista di controllo degli accessi alla rete (Network ACL) consentano il traffico ICMP dall'istanza di origine.
  • Assicurati che la porta di test sia aperta sull'istanza di destinazione. Verificare che il gruppo di sicurezza e le regole ACL di rete consentano il traffico dalla sorgente sul protocollo e sulla porta.

I risultati basati su TCP determinano se sulla connessione è presente una perdita o una latenza di pacchetti basata sull'applicazione. La versione MTR 0.85 e successive dispongono dell'opzione TCP.

Report sull'host on-premise dell'istanza IP privata EC2:

mtr -n -c 200

Report sull'host on-premise dell'istanza IP privata EC2:

mtr -n -T -c 200 -P 443 -m 60

Report sull'host on-premise dell'istanza IP pubblica EC2:

mtr -n -c 200

Report sull'host on-premise dell'istanza IP pubblica EC2:

mtr -n -T -c 200 -P 443 -m 60

Usa traceroute per determinare problemi di latenza o routing

L'utility Linux traceroute identifica il percorso da un nodo client al nodo di destinazione. L'utility registra il tempo in millisecondi impiegato da ciascun router per rispondere alla richiesta. L'utility traceroute calcola anche il tempo impiegato da ogni hop prima di raggiungere la destinazione.

Alcune richieste di timeout sono frequenti, quindi fai attenzione alla perdita di pacchetti verso la destinazione o all’ultimo hop del percorso. La perdita di pacchetti dopo diversi hop potrebbe indicare un problema.

Nota: è consigliabile eseguire il comando traceroute dal client al server. Quindi, esegui il comando dal server al client.

Per installare traceroute, esegui i seguenti comandi:

Amazon Linux:

sudo yum install traceroute

Ubuntu:

sudo apt-get install traceroute

Per testare l'indirizzo IP privato dell'istanza EC2 e in locale, esegui i seguenti comandi:

Amazon Linux:

sudo traceroutesudo traceroute -T -p 80

Windows:

tracerttracetcp

Nota: questi comandi eseguono una traccia basata su TCP sulla porta 80. Verifica di avere la porta 80 o la porta che stai testando aperta in entrambe le direzioni.

Se usi Linux, usa l'opzione traceroute per specificare una traccia basata su TCP anziché ICMP. Questo perché la maggior parte dei dispositivi Internet deprioritizza le richieste di tracciamento basate su ICMP.

Usa hping3 per determinare la perdita di pacchetti TCP end-to-end e i problemi di latenza

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.

Gli MTR e il traceroute acquisiscono la latenza per hop. Tuttavia, i risultati di hping3 mostrano la perdita di pacchetti e la latenza end-to-end minima, massima e media su TCP. Per installare hping3, esegui i seguenti comandi:

Amazon Linux:

sudo yum --enablerepo=epel install hping3

Ubuntu:

sudo apt-get install hping3

Esegui i seguenti comandi:

hping3 -S -c 50 -V <Public IP of EC2 instance or on-premises host>

hping3 -S -c 50 -V <Private IP of EC2 instance or on-premises host>

Nota: per impostazione predefinita, hping3 invia le intestazioni TCP alla porta 0 dell'host di destinazione con una winsize di 64 senza il flag tcp attivo.

Esempi di acquisizione di pacchetti con tcpdump o Wireshark

Esegui acquisizioni simultanee di pacchetti tra l'istanza EC2 di test nel VPC e l'host on-premise quando duplichi il problema. Ciò consente di determinare se ci sono problemi a livello di applicazione o di rete sulla connessione VPN. È possibile installare tcpdump sull’istanza Linux o Wireshark su un'istanza Windows per eseguire l'acquisizione di pacchetti.

tcpdump su Amazon Linux:

sudo yum install tcpdump

Installare tcpdump su Ubuntu:

sudo apt-get install tcpdump

Wireshark su sistema operativo Windows:

Per installare Wireshark, visita il sito Web di Wireshark. Quindi, effettua l'acquisizione di pacchetti.

Disattiva ECN

Se attivi la notifica esplicita di congestione (ECN), potrebbe causare la perdita di pacchetti o problemi di prestazioni quando ti connetti alle istanze di Windows. Per migliorare le prestazioni, disattiva ECN.

Per determinare se ECN è attivo, esegui il seguente comando:

netsh interface tcp show global

Se la funzionalità ECN è attivata, esegui il seguente comando per disattivarla:

netsh interface tcp set global ecncapability=disabled

Informazioni correlate

Come posso risolvere i problemi di prestazioni di rete tra le istanze Amazon EC2 Linux in un VPC e un host on-premise tramite il gateway Internet?

Come faccio a stabilire se le mie query DNS inoltrate al server DNS fornito da Amazon non vanno a buon fine a causa della limitazione applicata al DNS per il VPC?

AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa