LINUX.ORG.RU
решено ФорумAdmin

MTU/MSS для OpenVPN

 


0

1

В связи с недавними событиями настроил себе OpenVPN на забугорном сервачке, по этой https://wiki.archlinux.org/index.php/OpenVPN инструкции. Все получилось, но кое-что не понятно. Здесь https://wiki.archlinux.org/index.php/OpenVPN#Configure_the_MTU_with_Fragment_... описано, как определить правильное значение MTU. Однако у меня веб отлично работает без всяких настроек MTU в конфиге openvpn-клиента, а когда делаю по той инструкции (пингую сервер, пишу в конфиге fragment 1400 и mssfix) - сайты открываться перестают вовсе. Да, на сервере стоит polipo, который и используется в качестве прокси в браузере.

Если у вас всё и так работало, не понятно зачем вам понадобился fragment и mssfix, в man'е ведь чётко написано про эти опции:

Both --fragment and --mssfix are designed to work around cases where Path MTU discovery is broken on the network path between OpenVPN peers.

А так, попробуйте с помощью tcpdump посмотреть на заголовки tcp-пакетов http-сессий, работает ли опция mssfix — ставится ли в заголовке низкое значение mss.

mky ★★★★★ ()
Ответ на: комментарий от mky

Если у вас всё и так работало, не понятно зачем вам понадобился fragment и mssfix

Первая же Note по ссылке:

If you do not configure MTU, then you will notice that small packets like ping and DNS will work, however web browsing will not work.

Получается, это дезинформация?

А так, попробуйте с помощью tcpdump посмотреть на заголовки tcp-пакетов http-сессий, работает ли опция mssfix — ставится ли в заголовке низкое значение mss.

Попробую.

discordia ()

имхо крутить надо, когда в интернет ходишь через что-то, у чего mtu != 1500
и да, крутушки крутить же надо на обеих сторонах
крутишь на серве - крути на клиенте в эту же сторону

ii343hbka ★★★ ()
Последнее исправление: ii343hbka (всего исправлений: 1)
Ответ на: комментарий от discordia

у меня дома интернеты по pppoe(mtu на ppp0 == 1492)
для друга поднят openvpn(у него интернеты медленнее, а мы в пиринге)
в конфиг сервера дописано

dev-type tun
proto tcp-server

mssfix 1432
sndbuf 1048576
rcvbuf 1048576
txqueuelen 2048
tcp-queue-limit 1024
tcp-nodelay
вроде все довольны, и пинги не страдают, и странички шустренько открываются

ii343hbka ★★★ ()
Последнее исправление: ii343hbka (всего исправлений: 2)
Ответ на: комментарий от discordia

Да, по сути дезинформация. Во-первых, в man'е написано, что это нужно крутить, только когда есть проблемы, причём, про аналогичный параметр ″link-mtu″ вобще написано:

It’s best not to set this parameter unless you know what you’re doing.

Во-вторых, крутить надо и на клиенте и на сервере, потому что как правило mtu что от клиента к серверу, что от сервера к клиенту одинаков. А это в свою очередь означает, что на каждый раз когда клиент подключается из новой точки, нужно определять MTU и править настройки сервера. Но нафига нужен такой VPN-сервер, ведь удобство VPN'а это возможность подключаться откуда угодно.

Поэтому у openvpn'а есть опции ″mtu-disc″ и ″mtu-test″ и в нормальной сети он сам определят MTU. И только когда не работает штатный механизм определения MTU (заблокированы ICMP-пакеты) и возникают проблемы с передачей по тунелю больших пакетов, нужно крутить параметры ″fragment″ и прочие.

Возможно, что в вашем случае преставало работать из-за того, что на клиене вы выставляли ″fragment″, а на сервере нет и, при это, на клиенете не выставляли ″tun-mtu-extra″.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.