
Мне нужен высокопроизводительный VPN-сервер. Кто может объяснить разницу между L2TP и PPTP?
решение1
PPTP использует относительно простой механизм инкапсуляции и использует потоковый шифр RC4, который относительно дешев с точки зрения загрузки ЦП. L2TP имеет гораздо более сложный механизм инкапсуляции с потенциально до 6 уровней инкапсуляции с инкапсулированным туннелем IPSec, использующим обычно шифрование 3DES или (в последнее время) AES. 3DES относительно эффективен при реализации на оборудовании, но мой опыт показывает, что только программное обеспечение L2TP с 3DES имеет примерно вдвое больше накладных расходов, чем более простые протоколы инкапсуляции, хотя у меня нет значительного опыта работы с PPTP и L2TP in anger на том же оборудовании. С AES накладные расходы ЦП должны быть ниже, я считаю, что они обычно на 20-30% ниже 3DES, но у меня нет никаких твердых данных, подтверждающих это.
Давным-давно (2002/2003) у меня была интересная задача — поддерживать инфраструктуру VPN, состоящую из большого количества VPN-шлюзы Intel\Shiva Netstructure 3120 и 3130поддержка 60 тыс. удаленных пользователей. Большая часть инфраструктуры работала на практических пределах производительности или близко к ним в то время. Сами устройства (по большей части) были стандартным серверным оборудованием x86 с процессором Pentium III 733 МГц и 512 МБ ОЗУ. У 3130 было несколько выделенных аппаратных криптоускорителей (для DES/3DES) и он легко справлялся с зашифрованной пропускной способностью 90-95 Мбит/с\10 тыс. одновременных туннелей, но 3120 был по сути просто сервером без криптоускорителя и справлялся только с пропускной способностью около 20 Мбит/с\2 тыс. одновременных туннелей. Эта пропускная способность была основана на фирменном протоколе Shiva\Intel под названием SST, который имел полезную функцию, требуя для работы только один порт UDP, но то же самое оборудование могло обрабатывать около 75% пропускной способности с IPSec V2 и немного меньше с L2TP, который в то время находился в процессе ратификации. На практике шлюзы 3120 по-прежнему легко справлялись с 1000 одновременных туннелей и пропускной способностью около 10 Мбит/с с L2TP.
Я хочу сказать, что программная реализация L2TP, работающая на одноядерном процессоре Intel Coppermine с частотой 733 МГц и архитектурой, которая поддерживала пропускную способность памяти не более 1 ГБ/с, могла без проблем обрабатывать зашифрованную пропускную способность в 10 Мбит/с для очень большого количества одновременных сеансов. Современный многоядерный/многосокетный сервер будет иметь в 20-50 раз большую мощность ЦП на сокет и в 20 или более раз большую пропускную способность памяти, поэтому я ожидаю, что такая система сможет легко поддерживать пропускную способность L2TP в 1 Гбит/с с программным решением, а с любым криптографическим оборудованием современная система должна без проблем обеспечивать линейную скорость L2TP на нескольких гигабитных интерфейсах.
решение2
В двух словах, L2TP используется с IPSec, а PPTP — нет. L2TP более безопасен, PPTP проще в настройке.
решение3
Не знаю насчет PPTP, но в случае IPSec ваша производительность будет зависеть от выбора шифра шифрования. Если вы используете *nix box, то запустите
$ openssl скорость
Он проведет сравнительный анализ вашей системы на предмет различных шифров шифрования, поддерживаемых вашей системой.