LINUX.ORG.RU
ФорумAdmin

Низкая скорость OpenVPN на слабом железе. Какой бубен применить?

 , , ,


0

2

Да, очередной пост на эту тему ;)

Есть подкроватный «сервер» на базе Celeron J3355. На нём под KVM запущена pfSense (2.4.4), в которой поднят OpenVPN (2.4.6). На данный момент на гигабитной локалке не удаётся получить скорость выше 50 мегабит для TCP и 35 для UDP (что довольно странно).

Судя по top, openvpn жрёт 90% ЦП, ещё 10% - iperf. Довольно логично было бы забить на это говно, если бы я не помнил, что на убогой Orange Pi видел 60 мегабит «искаропки».

Что было проделано:

  • Проверено, что хост использует VT-x, а не VT-d
  • В /etc/libvirt/qemu/pfSense.xml выставлен тип процессора host-passthrough
  • В настройках pfSense выставлена загрузка AES-NI и отключен BSD cryptodev

После этого в виртуалке фичах процессора появился AESNI, и openssl speed -evp aes-256-cbc заметно ускорился. На дашборде появились надписи «AES-NI CPU Crypto: Yes (active)» и «Hardware crypto: AES-CBC,AES-XTS,AES-GCM,AES-ICM». Спидтест (iperf в то время я ещё не установил) показывал всё те же унылые 25-30 мбит.

Дальнейшие страдания:

  • Сгенерированы более простые сертификаты: CA - 2048 бит, клиента и сервера - 1024 бита.
  • Увеличен размер буфера до 2 Мб
  • Отключено сжатие
  • Включены экспериментальные фичи
  • Отключена защита от Meltdown (лол)
  • Отключен файрволл
  • Отключены все пункты, начинающиеся на"Disable hardware*"
  • Перезагрузил роутер

Вся эта ерунда повысила скорость до 30-35 мегабит. Игры с MTU, TOS, включением-отключением Intel RDRAND в качестве аппаратного ускорения и другими рандомными галочками ничего не дали.

ВНЕЗАПНО, когда я сменил UDP на TCP, скорость увеличилась до ~50. Вернул обратно нормальные сертификаты (4096 и 2048 бит) и AES-256-CBC - скорость снизилась незначительно, вероятно, дело не в них.

Потерь между двумя хостами не наблюдается, iperf из виртуальной машины при отключенном VPN выдаёт 600 мегабит.

конфиг клиента

конфиг сервера

Чзх и как с этим жить? .-.

Deleted

Перекатись на wireguard или любой другой kernel space vpn или vpn с нормальным оффлоадом шифрования.
/thread.

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

По мне так некорректный ответ. wireguard это, конечно, хорошо, но автора интересует почему именно так? Меня, например, тоже интересует почему смена на TCP увеличила скорость, а не наоборот.

turtle_bazon ★★★★★
()

Наверное, для начала надо сравнить со скоростью не в виртуалке, а уже потом думать можно ли что-то сделать.

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

Потому что ошибка инструментов измерения.
ТС, сколько выборок, сколько времени между прогонами, была ли побочная нагрузка?

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

Нагрузки на 20 мегабит не было точно, проверял раза 3 в рамках получаса с несколькими перезапусками сервера для переключения режима туда-обратно. Возможно, косяк iperf, но это пока не доказано.

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

Ну фыр, этот совет в каждой теме про тормоза ovpn по 5 раз запощен. У меня множественные душевные травмы после бытия тестировщиком клиента стронгсвана, не хочу ipsec под своей кроватью, он страшный

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

А вспомнил: можешь заюзать softether vpn. Оно побыстрее будет чем openvpn

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

Я просто не понимаю, какого чёрта. Ну не может же самый популярный[источник?] VPN внезапно оказаться настолько тормозным. Наверняка в сетапе что-то накосячено.

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

Не знаю насчёт популярности, но это самый адекватный VPN из всех тех, с чем мне пришлось работать. А ещё прикольный gvpe был, но, вроде бы, подох.

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

Я тоже так думаю, но, даже если оно заработает, второй железки ни для перекрёстного сравнения, ни для реального использования у меня всё равно нет.

Могу выкачать образ на десктоп и запустить на хосте с нормальным процессором, а не на огрызке. Не знаю, правда, какое знание это мне даст.

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

Ну если будет нормально, то таки, может, каких флагов процессора и не хватает. Очевидно же, что шифрование он на CPU всё делает без ускорения.

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

Да хрен с ним с шифрование, оно роутит пакеты в user space, а это лишние копирования и сисколы. Так что либо быстро, либо удобно.

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

А другой стороны нет, всё в локалке.

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

Попробовал юзать - иногда связь отваливается, и в лог клиента валятся ошибки

1:37 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #387505 ] — see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings

Возможно как-то, связано с тормозами UDP.

Deleted
()

Тред как я понял полон бета-тестеров wireguard, которые хотят выставить в интеренет открытый порт от unstable модуля ядра

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

В каждом треде про ovpn на лоре он форсится)

Но у меня как минимум один компьютер с виндой, так что вообще мимо.

Deleted
()

Окей, я совершенно точно выяснил, что дело не во времени и не во внешних устройствах. Если утром не отпустит, попробую вытащить ovpn из виртуалки и протестить скорость.

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

Когда это такое было? Он ведь в юзерспейсе, куча лишних переключений на ядро и обратно. OpenVPN хорош работой во всех распространённых ОСях и достаточно простой настройкой

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

Горы юзерспейсного софта легко saturate сетевые интерфейсы со всеми переключениями. Когда это nginx упёрся в процессор

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

nginx обычно гоняет сильно меньший трафик. Ну и у него обычно есть такие замечательные узкие места как диск или бэкэнд, трудно упереться не в них. Опять же переключений контекста nginx-у нужно сильно меньше как минимум за счёт буферизации запросов.

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

Я не говорю что ovpn неуюабельное тормозило, у него нормальная производительность для нормальных задач. Т.е. производительности хватает, если не пытаться страдать наркоманией вроде тунелирования гигабитов армовым одноплатником. Но мы ведь на ЛОРе, тут нормальные задачи это что-то ненормальное, а наркомания напротив — норма. Так-что хватает любителей поднять сабж на SOHO роутере, загнать в него весь трафик включая торренты и гундеть что что-то скорость просела

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

В том конкретном случае pfSense -> хост -> тупой хаб -> роутер (я его ненавижу) -> NAT loopback -> wifi -> телефон.

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

Если тебе будет легче, я на опенвпн на опенбсд выжимаю 10-20 мегабитов при том, что на сервере гигабит а на клиенте 300 мегабитов. Причём нагрузка не 100%. Ковырялся, не расковырял. Загадка.

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

Не, не будет, я уже видел толпу таких несчастных в поиске. Время ковыряний.

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

Им крайне неудобно пользоваться под вендой. Когда я последний раз настраивал, нужно было импортировать сертификат как доверенный. Это сразу нет.

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

Это очень неудобно и небезопасно. Зачем пользоваться устаревшими технологиями, наворачивая один протокол над другим, если есть нормально сделанный.

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

Хз я его не тестировал, нормального клиента под венду не нашёл, а мне нужна кроссплатформенность.

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