Nous utilisons un VPN OpenVPN sur une liaison satellite BGAN où les temps de ping sont d'environ 3 secondes. Nous l'utilisons dans une configuration tun , et nous fonctionnons sous Linux (CentOS). C'est principalement le courrier électronique qui sera envoyé via le lien, mais dès que le courrier contient des pièces jointes volumineuses, le VPN semble se bloquer.
Le message "Je peux exécuter une commande ping dans le tunnel, mais tout travail réel le bloque. Est-ce un problème MTU?" question dans la FAQ OpenVPN semble décrire mon problème exactement, mais l'utilisation mssfix
et fragment
ne semble toujours pas faire grand-chose pour améliorer la situation.
Mon test principal consiste à copier un fichier de 2 Mo sur le VPN avec scp . Il copiera environ 192 Ko, puis signalera un état - bloqué - . Si j'attends quelques secondes, la copie recommencera, puis s'arrêtera à nouveau après quelques kilo-octets.
Ce blocage se produit que j'aie ou non défini les options fragment
ou mssfix
dans ma configuration OpenVPN (bien que le réglage fragment 1000
ait semblé réduire le blocage, mais pas l'éliminer). L'OpenVPN a mtu-test
indiqué 1542 comme taille MTU.
J'ai cherché sur Internet pour plus de conseils sur comment et quand utiliser mssfix
et fragment
, mais je ne trouve que des pages disant la même chose que la FAQ, et ne donnant pas de détails sur comment et quand utiliser quels paramètres.
Mes questions sont alors:
- Quand dois-je utiliser
mssfix
etfragment
? - Dois-je utiliser
mssfix
etfragment
en combinaison? - Si
mssfix
etfragment
sont la solution, ce sont lestun-mtu
,link-mtu
et lesmtu-disc
paramètres pour?
De plus, j'ai utilisé l'outil iperf pour mesurer la bande passante. Sans le VPN, il mesure constamment de l'ordre de 210Kbits / sec.
Lorsque vous utilisez iperf sur le VPN ( $ iperf -c remoteserver -t60 -i5
), il démarre à 10 Kbits / s, puis monte régulièrement jusqu'à ce qu'il signale 1,2 Mbit / s, puis il semble se bloquer, où il signale 0 kbits / s pour un certain nombre d'itérations (I pense que le 1.2Mbits / sec peut être à cause d'une mise en mémoire tampon OpenVPN ou ainsi de suite)
Iperf est-il le meilleur moyen de mesurer la bande passante?
Toute aide dans cette situation sera grandement appréciée.
Réponses:
1542 comme MTU? Jamais entendu parler de cela pour une liaison WAN. Habituellement, MTU est la charge utile maximale, la taille de paquet IP moins l'en-tête pour IP (20 octets) et ICMP (8 octets). Cela signifie MTU = 1500 pour un LAN Ethernet traditionnel. De plus, la plupart des VPN introduisent une surcharge pour leur encapsulation de paquets. Un MTU VPN typique est 1400.
Dans les réseaux modernes, il est difficile de conclure quel MTU sera à tout moment, car les chemins d'entrée et de sortie peuvent être différents, et ils peuvent également changer en raison du réacheminement automatique des chemins. Pour un réseau comme celui-ci, il peut être plus efficace de définir le MTU bas sur vos hôtes qui se trouvent de chaque côté de la liaison VPN, comme 576.
MSS (taille de segment maximale) est MTU moins les en-têtes IP + TCP (40 octets). Ceci est généralement négocié par la pile réseau et n'a généralement pas les mêmes problèmes de négociation que MTU, sauf si MTU est erroné. (La négociation MTU est généralement entravée par des routeurs ICMP bloqués ou des trous noirs).
La première chose que je ferais est de faire une capture de paquets réseau du côté de l'envoi et de trier l'affichage par taille de trame (vous devrez peut-être ajouter cette colonne dans Wireshark). Vous devez vérifier que vous n'envoyez pas de cadres surdimensionnés, ce que vous attendez d'eux. Il n'est pas rare que des cartes réseau modernes envoient des trames surdimensionnées si des options telles que Large Send Offload ou Jumbo Frames sont activées. J'ai vu plus de 30 000 trames d'octets lorsque ces options sont activées.
la source
Par simple curiosité, avez-vous essayé de réduire le MTU de l'interface réseau? Peut-être que la liaison satellite gâche mal la fragmentation. À titre de contre-intuitif, vous voudrez peut-être essayer openvpn sur TCP pour un changement. Je sais que cela devrait diminuer les performances, mais si vous n'avez aucun contrôle sur la fragmentation le long de la ligne, cela pourrait vous aider.
la source
Lorsque vous utilisez TCP, augmentez la taille de la fenêtre de TCP; cela vous aidera avec le "nombre de paquets dans l'air".
Cela fait un moment que je n'ai pas dû jouer avec ce genre de choses, mais voici un lien que Google a trouvé pour moi.
Après avoir relu votre question, je vois que vous utilisez BGAN - j'aurais un bon aperçu de cela (ou simplement google pour: "BGAN spoofing").
En ce qui concerne la mesure de la bande passante, j'ai trouvé iperf assez décent tant que vous utilisez des tailles de paquets raisonnables.
la source
Je pense que vous aboyez sur le mauvais arbre. Chaque fois que j'ai eu de mauvais problèmes MTU, le trafic s'est arrêté bien avant 192 Ko. Je pense que c'est plus lié à certains dans la fenêtre "en vol des paquets", soit la fenêtre TCP, ou peut-être certains tampons dans la liaison montante satellite elle-même.
Sans aucun doute faire quelques captures de paquets à long ( à la fois « l' intérieur » et « extérieur » du VPN) et voir si vous obtenez tous les
ACK
« sla source