Tenemos docenas de dispositivos integrados instalados en los clientes, todos llamando a casa a nuestro servicio OpenVPN. Eso funciona bien en general, pero algunos de nuestros clientes tienen problemas severos de MTU. Nuestra influencia en los clientes para reparar sus redes es limitada, por lo que necesitamos que OpenVPN se encargue de ello. En pocas palabras, mi pregunta es:
¿Cómo puedo mitigar las MTU de ruta baja de algunos clientes en una base por cliente, es decir, sin utilizar configuraciones globales que se adapten al peor de los casos para todos los clientes?
Tenga en cuenta que nuestro peor de los casos es bastante malo: la ruta MTU 576, elimina todos los fragmentos, no se fragmenta, no respeta el bit DF. Ya ves por qué preferiría no resolver este problema a nivel mundial.
La página de manual de OpenVPN ofrece una serie de opciones relacionadas con MTU, en particular --link-mtu, --tun-mtu, --fragment and --mssfix
. Pero también dice
--link-mtu [...] Es mejor no configurar este parámetro a menos que sepa lo que está haciendo.
--tun-mtu [...] Es mejor usar las opciones --fragment y / o --mssfix para tratar los problemas de dimensionamiento de MTU.
Así que comencé a experimentar --fragment
y --mssfix
pronto tuve que darme cuenta de que al menos el primero debe configurarse no solo del lado del cliente, sino también del lado del servidor . Luego busqué en la configuración por cliente del lado del servidor a través de --client-config-dir
pero dice
Las siguientes opciones son legales en un contexto específico del cliente: --push, --push-reset, --iroute, --ifconfig-push y --config.
¡No se mencionan las opciones de MTU!
Así que aquí están mis preguntas más específicas:
- ¿Por qué exactamente
link-mtu
ytun-mtu
desanimados? ¿Cuáles son los posibles problemas con estas opciones? Tenga en cuenta que estoy bastante cómodo con el munging de encabezado IP de bajo nivel. - ¿Cuál de las opciones
link-mtu tun-mtu fragment mssfix
debe reflejarse en el lado del servidor para que funcione? - ¿En cuál de las opciones
link-mtu tun-mtu fragment mssfix
se puede usarclient-config-dir
? - En caso de que las cuatro opciones tengan que reflejarse en el lado del servidor y no puedan usarse en el interior
client-config-dir
: ¿Hay alguna alternativa para combatir la MTU de ruta baja por cliente?
Notas:
- Algunas de mis preguntas ya se han hecho hace 5 años aquí , pero en realidad no se han respondido en ese momento, por lo tanto, me atrevo a duplicarlas.
- El servidor OpenVPN es actualmente 2.2.1 en Ubuntu 12.04. Estamos preparando una actualización a 2.3.2 en Ubuntu 14.04
- Los clientes OpenVPN son 2.2.1 en Debian 7.6
- Me complace determinar la ruta de un MTU de un cliente yo mismo manualmente
- Actualmente no podemos probar mucho del lado del servidor. Pero estamos construyendo un banco de pruebas completamente separado, debería estar listo pronto.
Estoy agradecido por cualquier consejo útil.
iptables
reglas para reducir el MSS en todos los paquetes SYN hacia o desde la dirección IP de ese cliente.