Что является узким местом IPsec в Linux?

19

Я пытаюсь сравнить производительность нескольких протоколов сетевой безопасности между двумя хостами, подключенными в Gigabit Ethernet.

Моя цель здесь - посмотреть, смогу ли я насыщать свою пропускную способность, и если нет, то каков ограничивающий фактор.

  • при использовании SSL я могу достичь 981 Мбит / с, поэтому ограничение Ethernet, очевидно, является ограничивающим фактором;
  • с SSH я могу достичь только 750 Мбит / с, но одно из моих ядер работает на 100%. Поскольку SSH является однопоточным, CPU является ограничивающим фактором;
  • с IPsec я читаю около 500 Мбит / с, но ни одно из моих ядер не работает на 100% (меньше 50%).

Итак, мой вопрос: почему IPsec не может достичь более высокой пропускной способности?

Два хоста работают под управлением Debian Wheezy и Strongswan для IPsec.

user50228
источник
3
Вам нужно будет убедиться, что у вашего процессора есть aesинструкция для лучшего расшифровки пакетов на обоих сайтах intel.co.jp/content/dam/www/public/us/en/documents/white-papers/… , и быть уверенным, что вы параллельное использование ipsec и использование туннельного режима + ESP - strongswan.org/docs/Steffen_Klassert_Parallelizing_IPsec.pdf . Это лучший способ добиться производительности с этим протоколом.
К сожалению, у меня есть процессоры i3 без поддержки AES-NI, и я работаю в туннельном режиме между двумя хостами. Я понимаю, как оба ваших совета увеличат пропускную способность в случае использования одного процессора при 100%. Использование AES-NI позволит обрабатывать больше пакетов и увеличит BW. Но здесь процессор не является ограничивающим фактором.
user50228
3
Хм, это интересно. Я подозреваю, что что-то в ядре замедляет работу. Не могли бы вы поделиться своей конфигурацией ipsec? Я бы хотел использовать виртуальную машину и посмотреть, какие результаты я получу при разных настройках.
Lmwangi

Ответы:

1

Есть так много факторов, которые влияют на это. Сетевая карта поражает больше частей доски, чем вы можете себе представить. Любой набор, если инструкции могут натолкнуться на провод, поразить часть системы водителя и ушибить вас. Вы можете взять одноядерный 1200 МГц одноядерный и настроить аппаратные средства, чтобы взорвать двери и четырехъядерный 3600 МГц. Это действительно аппаратный вопрос.

Как они это делают? с чем-то вроде этого http://www.ixiacom.com/products/ixn2x Это устройство «Я сломаю тебя» стоимостью $ 165 тыс. то есть 2 гигабайта ошибочный трафик в трубу 1 гиг. Как только вы начнете избивать систему и ломать вещи, ваша горлышко бутылки «раскроет себя». Совершенствуйте свои навыки GDB!

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

Ответ неоднозначен, потому что решение неоднозначно. Я могу подумать о 20 различных возможностях, в том числе подкачки, которые могут варьироваться от версии ОС к версии.

штифтик
источник
0

Мне интересно, если это так, потому что искусственные ожидания или сны были вставлены в крипто. Это не очень вероятно IMO, но ...

http://www.tau.ac.il/~tromer/acoustic/

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

Раймонд Баннан
источник
0

Может случиться так, что в любое конкретное время насыщается только одно из двух ядер, но в среднем это выглядит так, как будто они оба составляют примерно 50% (потому что ядро ​​случайным образом назначает однопоточный процесс IPsec обоим ядрам; однако, насколько я заметили, что Linux (в отличие от Windows) обычно пытается сохранить поток на том же ядре).

В некоторые короткие периоды IPSec может также ожидать сеть, которая, в сочетании с низкой скоростью передачи, будет признаком плохой буферизации.

Также сжатие (если есть) и издержки протокола могут повлиять на ваши тесты.

МИК
источник