Comment puis-je résoudre les problèmes de perte de paquets sur ma connexion VPN AWS ?

Lecture de 6 minute(s)
0

Je constate des pertes de paquets constantes ou intermittentes et des problèmes de latence élevée avec ma connexion au réseau privé virtuel AWS (AWS VPN). Je souhaite savoir quels tests effectuer pour confirmer que le problème ne se produit pas dans mon Amazon Virtual Private Cloud (Amazon VPC).

Brève description

Les problèmes de perte de paquets varient selon les sauts de trafic Internet d'AWS VPN entre le réseau sur site et Amazon VPC. Il est donc recommandé d'isoler et de confirmer l'origine de la perte de paquets.

Résolution

Pour déterminer si vous avez atteint les limites du réseau, vérifiez que les hôtes source et de destination ne présentent aucun problème d'utilisation des ressources. Vous pouvez trouver des problèmes d'utilisation des ressources dans des valeurs comme CPUUtilization, NetworkIn et NetworkOut, ou NetworkPacketsIn et NetworkPacketsOut.

Utiliser MTR pour vérifier la perte de paquets ICMP ou TCP et la latence

MTR fournit une sortie continuellement mise à jour qui vous permet d'analyser les performances du réseau au fil du temps. Il combine les fonctionnalités de traceroute et de ping au sein d'un seul outil de diagnostic réseau. Pour vérifier la perte de paquets ICMP ou TCP et la latence, installez l'outil réseau MTR sur l'instance Amazon Elastic Compute Cloud (Amazon EC2) qui se trouve dans le VPC.

Amazon Linux :

sudo yum install mtr

Ubuntu :

sudo apt-get install mtr

Windows :

Reportez-vous au site Web de SourceForge pour installer WinMTR.

Remarque : pour le système d'exploitation (OS) Windows, WinMTR ne prend pas en charge le MTR basé sur le protocole TCP.

Exécutez les tests suivants entre les adresses IP privées et publiques de vos instances EC2 et de votre hôte sur site. Comme le chemin entre les nœuds d'un réseau TCP/IP peut changer lorsque la direction est inversée, il convient d'obtenir les résultats MTR dans les deux sens.

Avant d'exécuter les tests, vérifiez les configurations suivantes :

  • Assurez-vous que les règles du groupe de sécurité et de la liste de contrôle d'accès au réseau (ACL réseau) autorisent le trafic ICMP depuis l'instance source.
  • Assurez-vous que le port de test est ouvert sur l'instance de destination. Vérifiez que le groupe de sécurité et les règles ACL réseau autorisent le trafic provenant de la source sur le protocole et le port.

Les résultats basés sur le protocole TCP déterminent s'il existe une perte de paquets ou une latence liée à l'application sur la connexion. Les versions MTR 0.85 et ultérieures disposent de l'option TCP.

Rapport sur l'hôte sur site de l'instance EC2 IP privée :

mtr -n -c 200

Rapport sur l'hôte sur site de l'instance EC2 IP privée :

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

Rapport sur l'hôte sur site de l'instance EC2 IP publique :

mtr -n -c 200

Rapport sur l'hôte sur site de l'instance EC2 IP publique :

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

Utiliser traceroute pour déterminer les problèmes de latence ou de routage

L'utilitaire traceroute de Linux identifie le chemin entre un nœud client et le nœud de destination. Il enregistre le temps en millisecondes nécessaire pour que chaque routeur réponde à la demande. L'utilitaire traceroute calcule également le temps nécessaire à chaque saut avant d'atteindre sa destination.

Il est fréquent que des demandes expirent : surveillez les pertes de paquets à destination ou au niveau du dernier saut de l'itinéraire. La perte de paquets sur plusieurs sauts peut indiquer un problème.

Remarque : il est recommandé d'exécuter la commande traceroute du client vers le serveur. Vous devez ensuite exécuter la commande depuis le serveur vers le client.

Exécutez la commande suivante pour installer traceroute :

Amazon Linux :

sudo yum install traceroute

Ubuntu :

sudo apt-get install traceroute

Pour tester l'adresse IP privée de l'instance EC2 et sur site, exécutez les commandes suivantes :

Amazon Linux :

sudo traceroutesudo traceroute -T -p 80

Windows :

tracerttracetcp

Remarque : ces commandes effectuent un traçage basé sur le protocole TCP sur le port 80. Vérifiez que le port 80 ou le port que vous testez est ouvert dans les deux sens.

Si vous utilisez Linux, utilisez l'option traceroute pour spécifier un traçage basé sur TCP au lieu d'ICMP. En effet, la plupart des appareils Internet ne donnent pas la priorité aux demandes de traçage basées sur ICMP.

Utiliser hping3 pour déterminer les problèmes de perte de paquets TCP et de latence de bout en bout

Hping3 sur le site Web die.net est un assembleur et analyseur de paquets TCP/IP utilisable en ligne de commande qui mesure la perte de paquets et la latence de bout en bout sur une connexion TCP.

Les rapports MTR et traceroute capturent la latence par saut. Toutefois, les résultats de hping3 indiquent la perte de paquets et la latence minimale, maximale et moyenne de bout en bout sur TCP. Pour installer hping3, exécutez les commandes suivantes :

Amazon Linux :

sudo yum --enablerepo=epel install hping3

Ubuntu :

sudo apt-get install hping3

Exécutez les commandes suivantes :

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>

Remarque : par défaut, hping3 envoie des en-têtes TCP au port 0 de l'hôte cible avec un paramètre winsize de 64 et sans aucune balise tcp activée.

Exemples de capture de paquets à l'aide de tcpdump ou Wireshark

Effectuez des captures de paquets simultanées entre votre instance EC2 de test dans le VPC et votre hôte sur site lorsque vous dupliquez le problème. Cela vous permettra de déterminer la présence de problèmes liés à la couche application ou réseau sur la connexion VPN. Pour effectuer des captures de paquets, installez tcpdump sur votre instance Linux ou Wireshark sur votre instance Windows.

tcpdump sur Amazon Linux :

sudo yum install tcpdump

Installation de tcpdump sur Ubuntu :

sudo apt-get install tcpdump

Wireshark sur le système d'exploitation Windows :

Pour installer Wireshark, visitez le site Web de Wireshark. Effectuez ensuite une capture de paquets.

Désactivation de la fonctionnalité ECN

L'activation de la fonctionnalité ECN (Explicit Congestion Notification) peut entraîner des pertes de paquets ou des problèmes de performances lorsque vous vous connectez à des instances Windows. Pour améliorer les performances, désactivez la fonctionnalité ECN.

Pour déterminer si la fonctionnalité ECN est activée, exécutez la commande suivante :

netsh interface tcp show global

Si cette fonctionnalité est activée, exécutez la commande suivante pour la désactiver :

netsh interface tcp set global ecncapability=disabled

Informations connexes

Comment puis-je résoudre des problèmes de performance réseau entre des instances EC2 Linux ou Windows dans un VPC et sur un hôte sur site via la passerelle Internet ?

Comment puis-je déterminer si mes requêtes DNS envoyées vers le serveur DNS fourni par Amazon échouent en raison de limitations DNS du VPC ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois