Криптографическая карта для 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, которые поддерживаемая библиотека использует без дополнительного оборудования, и они избегают передач по шине и лишних копий. Старый ускоритель может проиграть этому пути, продолжая показывать впечатляющие сырые числа шифрования. Измеряйте реальную нагрузку: тот же трафик, те же настройки защиты, базовый вариант против кандидата, с одновременной записью нагрузки процессора и пропускной способности приложения. Включите в решение поведение при обновлении и восстановлении, потому что неподдерживаемый модуль повышает риск обслуживания шлюза на весь срок его службы.
Основание для покупки — поддерживаемая цепочка плюс измеренная выгода. Обнаруженная карта или модуль, который кто-то когда-то собрал, не причина ставить обслуживаемый шлюз в зависимость от устаревшего оборудования.