Assurez-vous que le link-MTU de votre tunnel openvpn est correctement configuré pour éviter la fragmentation double (une au niveau de l'hôte de 8192 octets à 1500 octets et une au niveau de openvpn de 1500 octets à 1400 octets ou autre). openvpn gère très mal le réglage de l'interface mtu (entrave activement les tentatives de réglage de la mtu correctement).
Vérifiez la latence pour différentes tailles de paquets traversant et contournant le tunnel. Tracez et recherchez des problèmes.
Configurez un test NFS à l'extérieur du tunnel et effectuez des mesures de performance de cette manière pour isoler si openvpn est le problème ou non.
Essayez différentes versions de NFS, à la fois TCP et UDP.
Essayez d'activer le caching agressif et l'E/S asynchrone.
Le suivant est un coup de gueule à propos du "harcèlement actif" d'openvpn concernant MTU (ajouté par "demande")
Oui. Définir tun-mtu entraîne openvpn à générer ATTENTION: normalement si vous utilisez --mssfix et/ou --fragment, vous devriez également définir --tun-mtu 1500 (actuellement c'est 1413).
Je n'utilise pas --mssfix
ou --fragment
.
De plus, définir une MTU statique dans la configuration est stupide et sujet aux erreurs, elle doit être dynamique. Donc, vous utilisez "mtu-disc yes", n'est-ce pas? Bien sûr, sauf que la valeur qu'il passe dans le script de démarrage est décalée de 14 (bien que j'utilise TAP pour le support IPv6, ce qui pourrait le confondre de manière mystérieuse). Donc, j'ai besoin de /sbin/ifconfig $1 mtu $(($2-14)) up
pour obtenir la bonne valeur (bonne signifiant une valeur qui ne causera pas de fragments ou de paquets abandonnés parce qu'ils sont trop gros).
J'ai du mal à imaginer une circonstance où le réglage de l'interface MTU à la valeur correcte n'est pas une bonne idée, au moins si vous n'avez pas de fragment défini (et vous ne devriez jamais avoir de fragment défini, à moins que vos péchés réseau ne vous hantent). Il devrait également changer dynamiquement l'interface MTU si elle est ultérieurement confrontée à des erreurs nécessitant des fragments en raison de changements réseau après l'initialisation.
Le MSS est totalement le mauvais niveau réseau pour effectuer ce travail. Si vous avez configuré correctement l'interface MTU, la découverte du MTU du chemin, le MSS, et tout fonctionnent simplement. Sinon, certaines choses peuvent fonctionner plus ou moins, d'autres non, et quelles choses fonctionnent dépendent de savoir si le véritable paquet est envoyé depuis l'hôte openvpn ou un autre hôte. Oh, et ne me lancez pas sur ce qui peut échouer si le MTU est asymétrique (ce qui n'est pas entièrement rare).
Je pense qu'OpenVPN a été écrit par des personnes sans beaucoup d'expérience en réseau et en administration système et leurs mauvais choix ont été codés en dur dans la configuration et les structures de données/API. Ils n'ont vraiment pas fait un très bon travail avec une configuration réseau flexible et saine et son intégration (ce n'est qu'un des plusieurs exemples). La chose triste est qu'il est des centaines de fois meilleur que les autres solutions disponibles, ce qui fait de moi un partisan d'OpenVPN. Le VPN Cisco est une catastrophe, par exemple.