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

Dernière mise à jour : 18/07/2022

Je perds des paquets de manière continue ou intermittente et je rencontre de gros problèmes de latence sur ma connexion VPN. Quels tests puis-je exécuter pour m'assurer que le problème n'est pas lié à mon Amazon Virtual Private Cloud (Amazon VPC) ?

Solution

Avant de commencer les tests de performances, lancez et configurez vos instances Linux Amazon Elastic Compute Cloud (Amazon EC2) :

  1. Suivez les étapes de la rubrique Lancement d'une instance pour lancer des instances Linux dans au moins deux zones de disponibilité différentes sous le même VPC. Vous pouvez exécuter des tests de performance réseau à partir de l'instance.
  2. Pour garantir les meilleures performances réseau possibles, vérifiez que les instances prennent en charge la mise en réseau améliorée pour Linux et lancez les instances dans le même VPC.
  3. Si vous testez les performances réseau entre des instances qui ne se trouvent pas dans le même groupe de placement ou qui ne prennent pas en charge les trames jumbo, suivez les étapes pour vérifier et définir la MTU sur votre instance Linux.
  4. Suivez les étapes de la rubrique Connexion à votre instance Linux pour vérifier que vous pouvez accéder aux instances.

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

Installez l'outil réseau mtr sur les deux instances pour vérifier la perte et la latence de paquet ICMP or TCP. mtr fournit une sortie mise à jour en permanence qui vous permet d'analyser la performance du réseau au fil du temps. Il combine la fonction de traceroute et de ping dans un outil de diagnostic réseau unique.

Installer mtr sur Amazon Linux :

sudo yum install mtr

Installer mtr sur Ubuntu :

sudo apt-get install mtr

Exécutez les tests suivants entre l'adresse IP privée et publique de vos instances EC2 et votre hôte sur site de façon bidirectionnelle. Le chemin entre les nœuds d'un réseau TCP/IP peut changer lorsque la direction est inversée. Par conséquent, il est important d’obtenir des résultats mtr dans les deux directions.

Le premier test mtr est basé sur ICMP, mais le second test a une option -T, qui vous donne un résultat basé sur TCP. Le résultat basé sur TCP vous aide à déterminer s'il y a une perte de paquets ou une latence basée sur une application sur la connexion. MTR version 0.85 ou ultérieure dispose de l'option TCP.

Tests d’adresses IP privées :

mtr -n -c 200 <Private IP EC2 instance/on-premises host> --report
mtr -n -T -c 200 <Private IP EC2 instance/on-premises host> --report

Tests d’adresses IP publiques :

mtr -n -c 200 <Public IP EC2 instance/on-premises host> --report
mtr -n -T -c 200 <Public IP EC2 instance/on-premises host> --report

Utiliser l'utilitaire Linux traceroute pour déterminer les problèmes de latence ou de routage

L’utilitaire traceroute de Linux identifie le chemin suivi entre un nœud client et le nœud de destination. Il indique également le temps en millisecondes pour répondre à une demande de chaque routeur identifié dans le chemin. Cet utilitaire calcule et affiche également le temps que met chaque saut pour atteindre sa destination. Si traceroute n'est pas installé, installez-le sur votre instance.

Installer traceroute sur Amazon Linux :

sudo yum install traceroute

Installer traceroute sur Ubuntu :

sudo apt-get install traceroute
Exécutez les tests suivants entre l'adresse IP privée et publique de vos instances EC2 et votre hôte sur site de façon bidirectionnelle. Le chemin entre les nœuds d'un réseau TCP/IP peut changer lorsque la direction est inversée. Il est important d'obtenir des résultats de parcours dans les deux sens.

Tests d’adresses IP privées :

sudo traceroute <private IP of EC2 instance/on-premises host>
sudo traceroute -T -p 80 <private IP of EC2 instance/on-premises host>

Tests d’adresses IP publiques :

sudo traceroute <public IP of EC2 instance/on-premises host>
sudo traceroute -T -p 80 <public IP of EC2 instance/on-premises host>

Remarque : les arguments -T -p 80 -n effectuent une trace basée sur TCP sur le port 80. Assurez-vous que le port 80 ou le port avec lequel vous effectuez les tests est ouvert dans les deux sens.

L'option Linux traceroute permettant de spécifier un traçage basé sur TCP au lieu d'ICMP est utile car la plupart des appareils Internet annulent la priorité des demandes trace basées sur ICMP. Il est fréquent que des demandes expirent ; surveillez les pertes de paquets à destination ou au niveau du dernier saut de l'itinéraire. L'accumulation de pertes de paquets sur plusieurs sauts peut également indiquer un problème.

Remarque : lors du dépannage de la connectivité réseau à l'aide de traceroute, il est utile d'exécuter la commande dans les deux sens.

Utiliser hping3 pour déterminer les problèmes de latence ou de perte de paquets TCP

hping est un assembleur/analyseur de paquets TCP/IP orienté ligne de commande. En plus des requêtes d'écho ICMP, il prend en charge les protocoles TCP, UDP et RAW-IP. Il dispose également d'un mode traceroute, de la possibilité d'envoyer des fichiers entre un canal couvert et de nombreuses autres fonctionnalités.

Si hping3 n'est pas installé, exécutez la commande suivante sur Amazon Linux :

sudo yum --enablerepo=epel install hping3

Ensuite, 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 sans aucune balise tcp activée.

Exemples de capture de paquets à l'aide de tcpdump

Vous pouvez effectuer des captures de paquets à la fois sur vos instances EC2 (présentes dans plusieurs zones de disponibilité) et sur votre hôte sur site lors de problèmes de duplication. Ces exemples de capture de paquets permettent de déterminer s'il existe des problèmes de couche réseau sur la connexion VPN. Installez tcpdump sur votre instance pour effectuer des captures de paquets.

Installez tcpdump sur Amazon Linux :

sudo yum install tcpdump

Installez tcpdump sur Ubuntu :

sudo apt-get install tcpdump

Remarque : reportez-vous à la documentation spécifique de votre fournisseur pour obtenir des instructions sur la façon de vérifier les périphériques réseau à des fins d'analyse et de dépannage.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?