Nous avons des dizaines d'appareils intégrés installés chez les clients, tous appelant à la maison à notre service OpenVPN. Cela fonctionne bien en général, mais quelques-uns de nos clients ont de graves problèmes de MTU. Notre influence sur les clients pour réparer leurs réseaux est limitée, nous avons donc besoin d'OpenVPN pour y faire face. En un mot, ma question est:
Comment puis-je atténuer les MTU à faible chemin de certains clients sur une base par client, c'est-à-dire sans utiliser de paramètres globaux adaptés au pire des cas pour tous les clients
Notez que notre pire cas est assez mauvais: le chemin MTU 576, supprime tous les fragments, ne se fragmente pas, n'honore pas le bit DF. Vous voyez pourquoi je préfère ne pas résoudre ce problème à l'échelle mondiale.
La page de manuel OpenVPN propose un certain nombre d'options liées à MTU, notamment --link-mtu, --tun-mtu, --fragment and --mssfix
. Mais ça dit aussi
--link-mtu [...] Il est préférable de ne pas définir ce paramètre à moins de savoir ce que vous faites.
--tun-mtu [...] Il est préférable d'utiliser les options --fragment et / ou --mssfix pour traiter les problèmes de dimensionnement MTU.
J'ai donc commencé à expérimenter --fragment
et j'ai --mssfix
vite compris qu'au moins le premier devait être défini non seulement côté client, mais aussi côté serveur . J'ai ensuite examiné la configuration par client côté serveur via --client-config-dir
mais il est dit
Les options suivantes sont légales dans un contexte spécifique au client: --push, --push-reset, --iroute, --ifconfig-push et --config.
Aucune mention des options MTU!
Voici donc mes questions les plus spécifiques:
- Pourquoi exactement
link-mtu
ettun-mtu
découragés? Quels sont les problèmes potentiels avec ces options? Notez que je suis assez à l'aise avec le munging d'en-tête IP de bas niveau. - Laquelle des options
link-mtu tun-mtu fragment mssfix
doit être mise en miroir côté serveur pour fonctionner? - Dans laquelle des options
link-mtu tun-mtu fragment mssfix
peut-on utiliserclient-config-dir
? - Dans le cas où les quatre options doivent être mises en miroir côté serveur et ne peuvent pas être utilisées à l'intérieur
client-config-dir
: existe-t-il des alternatives pour lutter contre la MTU à faible chemin par client?
Remarques:
- Certaines parties de mes questions ont déjà été posées il y a 5 ans ici , mais elles n'ont pas vraiment été répondues à l'époque, donc j'ose les dupliquer.
- Le serveur OpenVPN est actuellement 2.2.1 sur Ubuntu 12.04. Nous préparons une mise à niveau vers 2.3.2 sur Ubuntu 14.04
- Les clients OpenVPN sont 2.2.1 sur Debian 7.6
- Je suis heureux de déterminer moi-même le chemin d'un client-MTU manuellement
- Actuellement, nous ne pouvons pas tester beaucoup côté serveur. Mais nous construisons un banc d'essai séparé complet, devrait être prêt bientôt.
Je suis reconnaissant pour tout conseil utile.
iptables
règles pour réduire le MSS sur tous les paquets SYN vers ou depuis cette adresse IP cliente.