У нас есть десятки встроенных устройств, установленных у клиентов, и все они звонят домой в нашу службу OpenVPN. В целом это работает нормально, но у некоторых наших клиентов есть серьезные проблемы с MTU. Наше влияние на клиентов по исправлению их сетей ограничено, поэтому нам необходим OpenVPN для решения этой проблемы. В двух словах, мой вопрос:
Как я могу смягчить MTU низкого пути некоторых клиентов на основе для каждого клиента, то есть без использования глобальных настроек, учитывающих наихудший случай для всех клиентов
Обратите внимание, что в нашем худшем случае это довольно плохо: путь MTU 576, отбрасывает все фрагменты, не фрагментирует себя, не учитывает DF-бит. Вы понимаете, почему я предпочел бы не решать эту проблему глобально.
Страница руководства OpenVPN предлагает ряд опций, связанных с MTU, в частности --link-mtu, --tun-mtu, --fragment and --mssfix
. Но это также говорит
--link-mtu [...] Лучше не устанавливать этот параметр, если вы не знаете, что делаете.
--tun-mtu [...] Лучше всего использовать опции --fragment и / или --mssfix для решения проблем с размером MTU.
Таким образом , я начал экспериментировать с --fragment
и , --mssfix
но вскоре должен был понять , что по крайней мере первая должна быть установлена не только на стороне клиента, но также и на стороне сервера . Затем я посмотрел на серверной конфигурации для каждого клиента через, --client-config-dir
но он говорит
Следующие параметры допустимы в контексте, специфичном для клиента: --push, --push-reset, --iroute, --ifconfig-push и --config.
Никаких упоминаний о параметрах MTU!
Итак, вот мои более конкретные вопросы:
- Почему именно это
link-mtu
и неtun-mtu
рекомендуется? Каковы потенциальные проблемы с этими вариантами? Обратите внимание, что мне вполне комфортно с низким уровнем IP-заголовков. - Какие из параметров
link-mtu tun-mtu fragment mssfix
должны быть отражены на стороне сервера, чтобы работать? - Какой из вариантов
link-mtu tun-mtu fragment mssfix
можно использовать вclient-config-dir
? - В случае, если все четыре варианта должны быть зеркально отражены на стороне сервера и не могут использоваться внутри
client-config-dir
: Есть ли альтернативы для борьбы с MTU по низкому пути на клиента?
Примечания:
- Спросили Части моих вопросов уже 5 лет назад здесь , но они на самом деле не были , то огрызались, поэтому я смею их дублировать.
- Сервер OpenVPN в настоящее время 2.2.1 на Ubuntu 12.04. Мы готовим обновление до 2.3.2 на Ubuntu 14.04
- Клиенты OpenVPN являются 2.2.1 на Debian 7.6
- Я рад, что сам определяю путь клиента-MTU вручную
- В настоящее время мы не можем тестировать много на стороне сервера. Но мы строим полный отдельный испытательный стенд, должен быть готов в ближайшее время.
Я благодарен за любые полезные советы.
iptables
правила, чтобы уменьшить MSS на всех пакетах SYN с или на этот IP-адрес клиента.