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

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

Похожие статьи