Криптографічна картка для VPN-шлюзу: чотири передачі до купівлі
Виявлена картка PCI — це лише один із чотирьох кроків. Простежте драйвер, потрібну криптографічну операцію та активний бекенд VPN, перш ніж платити за прискорення.
Старі криптографічні прискорювачі з'являються в інвентарі PCI, і виникає припущення, що VPN тепер шифруватиме швидше. Щоб це було так, мають відбутися чотири окремі передачі: система знаходить пристрій, його веде підтримуваний драйвер, інтерфейс відкриває операцію, потрібну VPN, і активний бекенд VPN запитує її. Будь-який збій залишає картку поза реальним шляхом тунелю.
Виявлення — це перша передача, а не остання
Виявлення доводить лише те, що шина бачить пристрій і що ядро має певне уявлення про те, що це таке. Підтримка драйвера — наступні ворота, і вона залежить від версії: модуль, що був у старому випуску, може повністю бути відсутнім у поточному пакеті ядра. Крім того, драйвер має зареєструвати конкретний алгоритм і режим, які використовує канал даних. Картка, що прискорює AES-CBC, нічого не дає конфігурації, яка домовляється про AES-GCM.
Називайте кожну передачу окремо в оцінці, бо збій на четвертій ззовні виглядає так само, як збій на першій.
Прочитайте інвентар алгоритмів ядра
Почніть із того, що хост уже знає про пристрій і про зареєстровані ним алгоритми.
lspci -nn | grep -i -E "crypt|hifn|soekris"
grep -E "^(name|driver|priority)" /proc/crypto | head -40Рядок PCI дає ідентифікатори виробника й пристрою, потрібні для будь-якого пошуку драйвера, а/proc/crypto перелічує зареєстровані реалізації з їхніми драйверами та пріоритетами. Значення пріоритету впорядковує вибір між реалізаціями одного й того самого алгоритму, що не те саме, що вибір однієї з них застосунком. Якщо алгоритм картки там не з'являється, драйвер ніколи його не реєстрував, і жодна зміна в просторі користувача його не викличе. Записуйте ідентифікатори та назви реалізацій, а не скриншот картки.
VPN має вибрати саме цю реалізацію
Доступність у ядрі — це меню, а не гарантія, що процес VPN зробив замовлення саме з нього. Перевірте, що бекенд використовує насправді.
openssl speed -evp aes-256-gcm
openssl engine -t -cКоманда швидкості задіює власний шлях бібліотеки й дає базовий рівень для машини в її поточній конфігурації, а список рушіїв показує, чи доступний OpenSSL узагалі якийсь додатковий постачальник. VPN у просторі користувача зі своєю криптобібліотекою повністю обходить реалізації ядра, тож зареєстрований драйвер може бути для нього несуттєвим. Перенесення каналу даних — це ще третій механізм, який змінює обробку пакетів, а не надсилає шифрувальні запити на картку розширення. Визначте, який із цих трьох описує ваше розгортання, перш ніж купувати обладнання для четвертого.
Порівняйте зі шляхом процесора, який у вас уже є
Сучасні процесори містять інструкції AES, які підтримувана бібліотека використовує без додаткового обладнання, і вони уникають передач по шині та зайвих копій. Старий прискорювач може програти цьому шляху, продовжуючи показувати вражаючі сирі числа шифрування. Вимірюйте реальне навантаження: той самий трафік, ті самі налаштування захисту, базовий варіант проти кандидата, з одночасним записом навантаження процесора та пропускної здатності застосунку. Включіть у рішення поведінку під час оновлення й відновлення, бо непідтримуваний модуль підвищує ризик обслуговування шлюзу на весь строк його служби.
Підстава для купівлі — підтримуваний ланцюг плюс виміряна вигода. Виявлена картка або модуль, який хтось колись зібрав, не є причиною ставити підтримуваний шлюз у залежність від застарілого обладнання.