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

Date de la dernière mise à jour : 27/07/2018

Je subis des pertes de paquets continues ou intermittentes et des problèmes de latence élevée sur ma connexion VPN. Quels tests exécuter pour m'assurer que le problème ne se produit pas dans 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 dans Lancement d'une instance pour lancer des instances Linux dans au moins deux zones de disponibilité différentes sous le même VPC à partir duquel vous pouvez exécuter des tests de performances réseau.
  2. Pour obtenir des performances réseau optimales, 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 effectuez des tests réseau entre des instances qui ne sont pas colocalisées dans le même groupe de placement ou qui ne prennent pas en charge les trames jumbo, suivez les étapes dans Vérifier et définir la MTU sur votre instance Linux.
  4. Suivez les étapes décrites dans Connexion à votre instance Linux afin de 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 de paquets ICMP ou TCP et la latence. mtr fournit une sortie mise à jour en continu qui vous permet d'analyser les performances réseau au fil du temps. Il combine les fonctionnalités traceroute et ping dans un seul outil de diagnostic réseau.

Installez mtr sur Amazon Linux :

sudo yum install mtr

Installez mtr sur Ubuntu :

sudo apt-get install mtr

Exécutez les tests suivants entre les adresses IP privée et publique de vos instances EC2 et votre hôte sur site de manière bidirectionnelle. Le chemin entre les nœuds d'un réseau TCP/IP peut changer lorsque la direction est inversée, et il est important d'obtenir les résultats mtr dans les deux sens.

Le premier test mtr est basé sur ICMP, mais le deuxième test possède une option -T ce qui vous donne un résultat basé sur TCP. Le résultat basé sur TCP vous aide à déterminer s'il existe une perte de paquets ou une latence d'application sur la connexion. MTR version 0.85 et les versions ultérieures possèdent 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 Linux traceroute identifie le chemin depuis un nœud client vers un nœud de destination spécifié, ainsi que le temps, en millisecondes, pour chaque routeur identifié dans le chemin d'accès pour répondre à une demande. Cet utilitaire calcule et affiche également le temps nécessaire à chaque saut avant d'atteindre sa destination. Si traceroute n'est pas installé, veillez à l'installer sur votre instance.

Installez traceroute sur Amazon Linux :

sudo yum install traceroute

Installez traceroute sur Ubuntu :

sudo apt-get install traceroute

Exécutez les tests suivants entre les adresses IP privée et publique de vos instances EC2 et votre hôte sur site de manière bidirectionnelle. Le chemin entre les nœuds d'un réseau TCP/IP peut changer lorsque la direction est inversée, et il est important d'obtenir les résultats de l'itinéraire de suivi 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 TCP sur le port 80. Assurez-vous que le port 80 ou le port avec lequel vous testez est ouvert dans les deux sens.

L'option Linux traceroute permettant de spécifier une trace TCP au lieu d'ICMP est utile, car la plupart des appareils Internet déclassent la priorité des demandes de trace basées sur ICMP. Comme quelques demandes ayant expiré sont courantes, surveillez la perte de paquets vers la destination ou dans le dernier saut de l'itinéraire. La perte de paquets qui s'accumule sur plusieurs sauts peut également indiquer un problème.

Remarque : lors de la résolution du problème connectivité réseau à l'aide de traceroute, il est utile d'exécuter la commande dans les deux sens, du client vers le serveur, puis du serveur vers le client.

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 demandes d'écho ICMP, il prend en charge les protocoles TCP, UDP et RAW-IP, dispose d'un mode traceroute, permet d'envoyer des fichiers entre un canal couvert et offre 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

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 les en-têtes TCP au port 0 de l'hôte cible avec un winsize de 64 sans aucun indicateur tcp activé.

Exemples de capture de paquets à l'aide de tcpdump

L'exécution de captures de paquets sur vos instances EC2 (présentes dans plusieurs zones de disponibilité) et sur votre hôte sur site lors de la duplication du problème permet de déterminer s'il existe des problèmes de couche d'application ou de 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 de votre fournisseur pour savoir comment vérifier les périphériques réseau à des fins d'analyse et de dépannage.


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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?