[uanog] IPSec performance @ x86
Andriy Berestovskyy
berestovskyy at gmail.com
Thu Feb 2 09:06:50 EET 2017
Да, если взять линукс, настроить и пустить генератором line rate, то можно пойти на шаг дальше и вписав статически ip xfrm state + policy без демона IKE померять точную производительность IPSec :)
Андрей
> On 1 Feb 2017, at 22:32, Sergey Smitienko <hunter at comsys.com.ua> wrote:
>
> Все в порядке. Берете linux, толкого его настраиваете в плане ethernet, прогоняете сколько_вам_там_надо, видите cpu load, и добавляете
> к этому скорость шифрования. Получаете примерно ожидаемую цифру.
>
>> Ребята,
>> Посмотрите исходники:
>> https://github.com/openssl/openssl/blob/master/apps/speed.c
>>
>> openssl speed - это цикл на одних и тех же данных, т.е. ничего, кроме вычислительной мощности процессора он не показывает: данные будут в кэше L1 после первого же оборота.
>>
>> IPSec на шлюзе - это принять пакет, заглянуть в таблицу маршрутизации, заглянуть а SPD, заглянуть в SAD, зашифровать и выслать. Для маленьких пакетов само шифрование занимает лишь малую часть процессорного времени, необходимого на обработку каждого пакета.
>>
>> Андрей
>>
>> On 1 Feb 2017, at 11:41, Sergey Smitienko <hunter at comsys.com.ua> wrote:
>>
>>> Привет.
>>>
>>> core.i7.6700k#openssl speed -evp aes-128-cbc
>>>
>>> Doing aes-128-cbc for 3s on 16 size blocks: 227357080 aes-128-cbc's in 3.00s
>>> Doing aes-128-cbc for 3s on 64 size blocks: 64897721 aes-128-cbc's in 3.00s
>>> Doing aes-128-cbc for 3s on 256 size blocks: 16590421 aes-128-cbc's in 3.00s
>>> Doing aes-128-cbc for 3s on 1024 size blocks: 4189099 aes-128-cbc's in 3.00s
>>> Doing aes-128-cbc for 3s on 8192 size blocks: 524904 aes-128-cbc's in 3.00s
>>>
>>> OpenSSL 1.0.2g 1 Mar 2016
>>> built on: reproducible build, date unspecified
>>> options:bn(64,64) rc4(16x,int) des(idx,cisc,16,int) aes(partial) blowfish(idx)
>>> compiler: cc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
>>> The 'numbers' are in 1000s of bytes per second processed.
>>> type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
>>> aes-128-cbc 1212571.09k 1384484.71k 1415715.93k 1429879.13k 1433337.86k
>>>
>>> В блоках по 64 байта (самый плохой случай - voip) дает 1.3 гигабайта в секунду при полной загрузки одного ядра.
>>> Без AES-NI
>>>
>>> The 'numbers' are in 1000s of bytes per second processed.
>>> type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
>>> aes-128 cbc 167418.06k 182451.93k 188739.07k 187727.19k 194005.67k - 182 мегабайта в секунду.
>>>
>>> В обоих случаях это больше, чем нужно, для загрузки гигабитного канала.
>>> Скорости работы AES в openssl и в linux kernel практически можно считать одинаковыми.
>>>
>>> А AES-256 не нужен. AES-256 на самом деле слабее, чем AES-128.
>>> "Assuming you're talking about AES 128 versus AES 256, there is a known weakness in the key expansion function that affects AES256.
>>> Fundamentally, the weakness reduces the complexity of AES256 to that lower than AES128."
>>> http://eprint.iacr.org/2009/374
>>>
>>>
>>> > В Intel NIC гигабитках и старше есть аппаратная поддержка IPSec/AES,
>>> > которая типа дает wire speed шифрование.
>>> >
>>> >> Привет,
>>> >>
>>> >> есть задача - запустить сеть с шифрованием трафика на основе механизма
>>> >> GRE over IPSec/IKEv2 (GRE нужен для dynamic routing, IPSec - для
>>> >> совместимости с решениями других производителей - таковы
>>> >> требования).Если у кого есть опыт использования open source / x86 для
>>> >> подобных задач, поделитесь им, пожалуйста:
>>> >>
>>> >> * на каких программно-аппаратных конфигурациях какую предельную
>>> >> производительность удалось получить (до начала потерь пакетов)?
>>> >> o CPU/MB/RAM (тип, частота)
>>> >> o NIC (производитель, модель)
>>> >> o операционная система
>>> >> o софт / библиотеки
>>> >> o алгоритм и длина ключа для симметричного шифрования (в
>>> >> реальности - интересует, конечно же, AES-256)
>>> >>
>>> >> Спасибо!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.uanog.kiev.ua/pipermail/uanog/attachments/20170202/7d0a0db6/attachment-0001.html>
More information about the uanog
mailing list