Excellente performance UDP vs pauvre performance TCP dans un tunnel IPsec

Bonjour à tous -

J’ai un tunnel IPsec entre un centre de données et ma maison. Le centre de données est en 2.4.5, la maison en 2.5.2. Ce tunnel transmet 900 Mbps de trafic UDP quand on teste avec iperf3 avec une cible de bande passante de 900M, mais ne passe qu’environ 80 Mbps de manière cohérente en utilisant TCP dans iperf3, avec des performances similaires pour les transferts de fichiers CIFS/SMB (l’utilisation prévue du tunnel).

MSS est réglé à 1360 car j’utilise IPv6 pour IPsec sur le côté maison pour d’autres localisations. La capture des paquets semble correcte - pas d’erreurs ou de pertes ni du côté WAN ni dans les réseaux internes.

Des idées sur ce que je pourrais manquer pour améliorer au moins un peu la performance du côté TCP ? Je voudrais atteindre au moins 125 Mbps en TCP, car cela maximisera la vitesse en aval d’une autre localisation que je souhaite connecter à cette configuration.

TIA.

MODIFICATION - Il semble que le problème vienne du fait que FreeBSD 12/Truenas n’est pas optimisé pour une utilisation en WAN dès la sortie de l’installation. Après réglage, il a été possible d’atteindre rapidement plus de 100 Mbps. En testant avec Ubuntu, les performances démarraient à environ 160 Mbps dès la sortie, sans réglages.

Votre fenêtre de réception pourrait être trop petite, ce qui empêche l’expéditeur d’envoyer suffisamment de paquets pour utiliser toute votre bande passante disponible, car ils sont encore en vol et pas encore ackés. Bandwidth-delay product - Wikipedia

Utilisez soit plus de flux TCP en parallèle, soit agrandissez la fenêtre de réception.

Les valeurs MTU et MSS sont-elles correctes ?

Essayez cette option - Déchargement de la segmentation TCP matérielle.

Dans un tunnel privé où il n’y a ni collision ni trafic, UDP et TCP devraient être assez proches en termes de performance. Faites-vous les deux tests avec un seul flux en utilisant les mêmes outils ? N’oubliez pas que UDP ne peut faire qu’une seule session à pleine vitesse (principalement). TCP peut faire de la congestion contrôlée, donc il peut avoir plusieurs sessions, mais elles se termineront plus vite à une vitesse globale inférieure.

Les chiffres que vous donnez indiquent qu’il y a quelque chose de très mal configuré ou mal aligné.

Mesurez-vous entre des pfsenses ? Ou derrière eux, des serveurs ?

Quand j’ai configuré OpenVPN sur pfSense l’année dernière, je me souviens avoir lu que généralement OpenVPN utilise UDP plutôt que TCP. Cela avait à voir avec la combinaison de la fiabilité de TCP avec la fiabilité du VPN, ce qui causait une augmentation exponentielle des coûts en overhead, tandis que UDP peu fiable n’avait pas ce problème. J’ai fait une recherche Google rapide et je n’ai pas trouvé de référence, mais je me demande si quelque chose de similaire se produit dans votre cas.