производительность openvpn



  • кто добивался высокой производительности опенвпн?
    меня интересует скорость около 200 мегабит, т.е. полудуплексных 100 мегабит (в каждую сторону по 100 :).
    у меня максимум что удалось "выжать" это около 60-70 мегабит в каждую сторону, т.е. суммарно около 140-150 мегабит, при этом загрузка пфсенса не более 40%, пк -4х ядерный феном….
    а просто роутниг на этом же железе давал 800 мегабит (по 400 в каждую сторону)..
    может подкрутить чего надо?



  • Гуглоцитаты

    Для примерной оценки скорости работы openvpn можно сделать следующее:
    на сервере где установлен openvpn сервер выполняем команду:
    openssl speed bf-cbc
    где bf-cbc - это метод шифрования. По умолчанию шифрование производится с помощью blowfish алгоритма.
    По результатам теста можно оценить максимальную скорость.

    • Рекомендуют уменьшить MTU на обоих сторонах; поменять метод шифрования.


  • может лучше vlan ?



  • вланы не подходят, надо не для локалки…
    результаты теста:
    [2.0-BETA5][root@test1.localdomain]/root(1): openssl speed aes-128-cbc
    To get the most accurate results, try to run this
    program when this computer is idle.
    Doing aes-128 cbc for 3s on 16 size blocks: 14349710 aes-128 cbc's in 2.99s
    Doing aes-128 cbc for 3s on 64 size blocks: 3797722 aes-128 cbc's in 2.99s
    Doing aes-128 cbc for 3s on 256 size blocks: 970161 aes-128 cbc's in 2.99s
    Doing aes-128 cbc for 3s on 1024 size blocks: 240353 aes-128 cbc's in 2.99s
    Doing aes-128 cbc for 3s on 8192 size blocks: 30518 aes-128 cbc's in 2.99s
    OpenSSL 0.9.8n 24 Mar 2010
    built on: date not available
    options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) blowfish(idx)
    compiler: cc
    available timing options: USE_TOD HZ=128 [sysconf value]
    timing function used: getrusage
    The 'numbers' are in 1000s of bytes per second processed.
    type            16 bytes    64 bytes    256 bytes  1024 bytes  8192 bytes
    aes-128 cbc      76870.81k    81184.33k    82959.16k    82210.31k    83502.13k
    [2.0-BETA5][root@test1.localdomain]/root(2):

    [2.0-BETA5][root@test1.localdomain]/root(22): openssl speed bf-cbc
    To get the most accurate results, try to run this
    program when this computer is idle.
    Doing blowfish cbc for 3s on 16 size blocks: 23427636 blowfish cbc's in 2.98s
    Doing blowfish cbc for 3s on 64 size blocks: 6214607 blowfish cbc's in 2.99s
    Doing blowfish cbc for 3s on 256 size blocks: 1567590 blowfish cbc's in 2.99s
    Doing blowfish cbc for 3s on 1024 size blocks: 390948 blowfish cbc's in 2.99s
    Doing blowfish cbc for 3s on 8192 size blocks: 48700 blowfish cbc's in 2.99s
    OpenSSL 0.9.8n 24 Mar 2010
    built on: date not available
    options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) blowfish(idx)
    compiler: cc
    available timing options: USE_TOD HZ=128 [sysconf value]
    timing function used: getrusage
    The 'numbers' are in 1000s of bytes per second processed.
    type            16 bytes    64 bytes    256 bytes  1024 bytes  8192 bytes
    blowfish cbc    125969.55k  132843.66k  134026.08k  133726.28k  133244.72k
    [2.0-BETA5][root@test1.localdomain]/root(23):

    но скорость примерно одинакова, в обоих случаях…



  • @alexandrnew:

    The 'numbers' are in 1000s of bytes per second processed.
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    aes-128 cbc      76870.81k    81184.33k    82959.16k    82210.31k    83502.13k

    The 'numbers' are in 1000s of bytes per second processed.
    type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
    blowfish cbc    125969.55k   132843.66k   134026.08k   133726.28k   133244.72k

    А мне кажется разница большая



  • я говорю про реальную скорость прокачки файлов через тунель…
    так я вижу что разница где то в 1,6-1,8 раза.. но опять таки - по данной логике: aes-128 cbc      76870.81k-83502.13k - т.е. я так понимаю 76-83 мегабита, но у меня при тесте в обе сторны давало в каждую 60-70...
    т.е. в сумме 120-140.. выше чем тест показал...
    что то не понятно....



  • @alexandrnew:

    я говорю про реальную скорость прокачки файлов через тунель…
    так я вижу что разница где то в 1,6-1,8 раза.. но опять таки - по данной логике: aes-128 cbc      76870.81k-83502.13k - т.е. я так понимаю 76-83 мегабита, но у меня при тесте в обе сторны давало в каждую 60-70...
    т.е. в сумме 120-140.. выше чем тест показал...
    что то не понятно....

    Посмотри в гугле - там много статей по этому вопросу.



  • да гуглил, проблем у многих хватает, но в основном скорости раз в 10 меньше…
    и решений для данного случая - не встречал...
    может не так гуглил...



  • вам шифрование-то нужно вообще?



  • крайне желательно :)
    в любом случае - без шифрования - дало примерно по 90 мегабит в каждую сторону…



  • 4х ядерный феном

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



  • при установке пфсенс спрашивает какое ядро ставить, энто раз :)
    второе - в топе, в графе state cpu0-3 вылазят на разных процессах :)
    посему думаю знает
    а вот опенвпн - явно не знает….:(
    я уже думал что бы сделать не tun а  tap интерфейсы и сбриджевать их...
    тогда получится несколько процессов опенвпн....



  • посмотрите в сторону pptp или l2tp/ipsec на mpd. Эти решения используются провайдерами, скорее  всего они смогут обеспечить вам нужную скорость. Ну и стоит задуматься о покупке готового решения под vpn (Если это действительно нужно). Лично я сильно сомневаюсь в способности openvpn пропускать большие потоки - не для того он предназначен. Хотя я видел ГОТОВЫЕ решения на openvpn с возможностью балансировки между разными серверами.

    Не нашел, то что искал, зато нашел вот это
    http://techtots.blogspot.com/2010/01/load-balancing-openvpn-connections-via.html
    Распараллеливание идет за счет изоляции в виртуальной машине.



  • @deutsche:

    Хотя я видел ГОТОВЫЕ решения на openvpn с возможностью балансировки между разными серверами.

    zeroshell ? я других не встречал, бесплатных по крайней мере…
    кстати, а где то тесты производительности опенвпн есть?  было бы интересно сравнить.... а то все что видел - малые скорости..



  • @alexandrnew:

    а просто роутниг на этом же железе давал 800 мегабит (по 400 в каждую сторону)..

    Просто роутинг был с включенным pf или выключенным? тест между теми же сайтами?



  • pf включен
    интерфейсы гигабитные
    это пока тестовая площадка..
    между теми же…



  • Кстати, чем тестишь, iperf'ом?



  • в данном случае - wget



  • И какой трафик перекачиваешь?



  • файл около 2,5 гб, находится в оперативке



  • udp или tcp?



  • tcp, как еще можно вгетом скачать :)
    тунель тоже по tcp, хотя пробовал и  udp - на скорость не влияет



  • @alexandrnew:

    тунель тоже по tcp, хотя пробовал и  udp - на скорость не влияет

    В лабе может и не влиять, а вот в полях очень даже может повлиять.
    А по теме - даже не знаю, что присоветовать. Похоже на аппаратное ограничение.



  • Характер файла? Нули, рандом, фильм, исошка, архив?



  • @deutsche:

    Характер файла? Нули, рандом, фильм, исошка, архив?

    а чем это может влиять? кроме сжатия?
    линуксовый двд исо. сжимать его некуда :) в нем и так все сжатое…


Log in to reply