LINUX.ORG.RU

Тормозной OpenVPN


0

1

Есть маршрутизатор (Asus RT-N66U), там стоит Tomato от Shibby. Он работает как VPN сервер. За ним стоит комп с торрентами и домашними облаками. Так вот, если я подключаюсь по VPN к маршрутизатору и лезу на этот комп - получаю скорость порядка 0.5 МBps, а если не используя VNP пробросить порт - скорости раз в 10 выше. Под нагрузкой у маршрутизатора la ~ 0.3-0.4, что не должно быть очень критично.

Есть идеи, что можно проверить и подкрутить, чтобы всё работало? При этом из другого места (ближе) получается ~ 2МBps.

В OpenVPN включен tls-auth. Пакеты UDP. Пробовал менять MTU на 1300 - эффекта не увидел. Цифры измерял при помощи iperf.

★★★★★

Шифрование на таком дохлом процессоре никогда не будет работать быстро.

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

Если верить openwrt Asus RT-N66U «Broadcom BCM5300 chip rev 1 pkg 0 (MIPS 74K V4.9)@ 600 Mhz» не совсем дохлятик.

Есть подозрение, что проблема с PMTU. tracepath с обоих сторон посмотреть бы.

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

не совсем дохлятик.

Да нет, совсем. Даже на нормальных серверах скорость с шифрованием и без может отличаться в десять раз.

Полезная ссылка: https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

ИМХО, стоит попробовать для теста запустить openvpn вообще нбез шифрования и авторизации. Будет понятно на сколько именно шифрование снижает скорость.

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

Про гигабит и так понятно - неосилит, а 10-20 мбит/с не должно быть проблем с CPU

А попробовать сравнить разные типы шифрования было неплохо.

и еще - нет ли где по пути этого vpn перегруженного линки или шейпера ? дропы для udp должны сильно влиять на скорость.

Я бы попробовал на tcp переключить и сравнить.

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

С клиента (Win 8.1, mturoute):

D:\Progs>mturoute.exe 192.168.255.2
* ICMP Fragmentation is not permitted. *
* Speed optimization is enabled. *
* Maximum payload is 10000 bytes. *
+ ICMP payload of 1472 bytes succeeded.
- ICMP payload of 1473 bytes is too big.
Path MTU: 1500 bytes.
С сервера:
vit ~ $ tracepath 192.168.255.20
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.255.20                                      155.371ms reached
 1:  192.168.255.20                                      153.564ms reached
     Resume: pmtu 1500 hops 1 back 128

Чуть позже попробую TCP.

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

Попробовал выключить всё: tls-auth, компрессию, шифрование и переключиться на TCP - всё стало ещё тупее. Скорость упала до 0.2Mbps. С UDP было где-то 0.3. При этом прямое подключение на проброшенный порт даёт ~3MBps.

Ещё советы? Может ли быть это связано с большим числом соединений, открытых на маршрутизаторе (через него на сервер постоянно качаются торренты и количество соединений мной специально не лимитировалось).

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

Ещё про MTU: у меня подключение к интернету - GPON с PPPoE (поднимается маршрутизатором). Там в настройках MTU уже 1492. Это как-то повлияет? Я пробовал менять MTU - особенно не помогало.

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

С выключенным всем и UDP получается ~0.5 MBps, чуть выше, похоже, чем c шифрованием, но это капля в море, всё равно в 6 раз медленнее.

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

тестировать нужно на пустом канале, а не с торрентом за компанию.

т.е. у тебя по пути еще есть какой-то роутер с gpon (на «Asus RT-N66U» нет оптики).

Я бы взял какой-нибудь комп/ноут с линуксом. Настроил бы на нем openvpn-сервер и подключил бы к нему твой «Asus RT-N66U» и посмотрел бы скорость. на 95% уверен, что скорость будет больше 3Мбит/с.

Что за железяка с gpon ?

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

Итак схема подключения такая:

 сервер с Linux -(1Gbps)-> RT-N66U (OpenVPN сервер) -(1Gbps)-> Eltex NTP-RG-1402W -(оптика)-> Ростелеком -> ноутбук в гостинице (Open VPN клиент)
Да, у меня есть промежуточный маршрутизатор. Но он настроен в режиме моста, PPPoE сессия поднимается с RT-N66U, этот маршрутизатор, как я понимаю, фактически не участвует в получении мной интернета, выполняя функцию конверсии оптического сигнала в электрический + примешивая туда ещё и телевидение. Скорости, приведённые выше это iperf с ноутбука на «сервер c Linux», на котором качаются торренты и облака. RT-N66U не нагружен ничем, кроме собственно маршрутизации и OpenVPN. То, что на этом же канале качаются торренты не должно создавать проблем, т.к. при этих же условиях, если пробросить порт 5001 наружу и запустить iperf, я получаю 3-4MBps.

А почему именно сервер настраивать в сети? Я же могу поставить OpenVPN клиент на свой «сервер с Linux» и потестировать с него. Наверно так и сделаю. Просто не очень хотелось ставить iperf на RT-N66U.

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

Сделал iperf внутри домашней сети - 16Mbit (т.е. 2MBps). Правда на сервере стоял TUN, а не TAP, но, думаю, это не большая разница, с учётом того, что проц нагружается на 80% шифрованием, а на остальные 20% сервером iperf. Снаружи так и не поднимается выше 0.5MBps.

Если IPsec вместо OpenVPN - не получится, роутер не умеет его просто так, надо ставить optware, думаю, что не очень бы хотелось.

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

т.е. проблема в свойствах канала.

Я бы начал с определения MTU между openvpn клиентом и сервером (т.е. когда тунель не поднят)

Я бы попытался объяснить openvpn, что канал с MTU < 1500 через указание MTU для tun/tap, «mtu-disc no|yes», «fragment» и т.п.

vel ★★★★★
()

Ну, в общем, можете считать меня ИКСПЕРТОМ тут.

В конфиг сервера добавьте:

fast-io
txqueuelen 250
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"
Если у вас где-то MTU < 1490, то лучше еще и mssfix покрутить. По умолчанию mssfix настроен на 1450, что соответствует, грубо говоря, MTU 1490 для IPv4, так что если у вас действительно Ethernet 1500 + PPPoE = 1492, то ничего менять не надо.

OpenVPN в Tomato должен выдавать ~20Mbit/s с AES-128-CBC и MD5 в качестве HMAC на вашем роутере.

Надо еще заметить, что, по какой-то причине, OpenVPN на роутерах обычно очень тормозной (на DD-WRT и OpenWRT). На моем роутере (TP-LINK TL-WDR4300) что с шифрованием 10Мбит/с, что без, выше практически не поднимается. Я подозреваю, что это из-за того, что openssl и openvpn собирают с оптимизациями по размеру, а не по производительности. В Tomato же, вроде как, нормально собрали.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 4)
31 октября 2014 г.
Ответ на: комментарий от ValdikSS

Сегодня протестил у себя, сабж действительно работает.

anonymous_sama ★★★★★
()
29 декабря 2014 г.
Ответ на: комментарий от ValdikSS

Кстати не знаешь можно ли как-нибудь в Network manager'е txqueuelen, sndbuf, sndbuf, explicit-exit-notify, hand-window выставлять? Там ведь формат конфига несколько отличается.

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

Не знаю. Когда мне нужен был IPv6, а его поддержки в плагине для NM еще не было, я его патчил. Вероятно, тут тоже надо сделать патч. Возможно, я просто добавлю редактируемое поле в интерфейс, чтобы можно было дополнять строку запуска, но это будет после нового года.

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