Привет, Хабр! Я Павел Молодан, продуктовый менеджер в UserGate. Последние 20 лет я работал в телекоме, а сейчас вместе с командой занимаюсь интеграцией аппаратного ускорения в продукты UserGate. В этой статье разберу, почему функции защиты замедляют межсетевой экран нового поколения, какие способы ускорения доступны и как FPGA помогает обрабатывать трафик, глубокую инспекцию, тяжелые сессии и шифрование. В финале покажу результаты наших экспериментальных платформ и приведу список вопросов, с которых стоит начинать такой проект у себя.

Как спортивный автомобиль превращается в мопед

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

С корпоративным файрволом происходит похожая история. Базовая фильтрация трафика показывает одну производительность. После включения потокового антивируса, системы обнаружения и предотвращения вторжений, SSL/TLS-инспекции, контроля приложений и контентной фильтрации профиль нагрузки меняется. Устройство продолжает выполнять свою работу, однако пропускная способность и задержка уже не соответствуют требованиям для простого L4-файрвола.

Причина понятна. Современный NGFW должен пропускать большие объемы данных, разбирать заголовки, сопоставлять пакеты с политиками, при необходимости расшифровывать поток, искать сигнатуры, определять приложение и пользователя, отфильтровывать URL. К этому добавляются видеоконференции, резервное копирование, синхронная репликация баз данных, VPN для удаленных сотрудников и сервисы с высокими требованиями к задержке.

Центральный процессор остается универсальным исполнителем. Он способен решать обширный набор задач и поддерживает сложную программную логику. Однако «универсализация» процессора сказывается на обработке потока: копировании данных, работе с памятью и кэшем, переключении контекста, балансировке между ядрами и доступе к общим ресурсам. При росте нагрузки часть этих операций становится «узким местом».

Задача инженера в таком случае — сохранить нужный набор защитных функций и обеспечить требуемую скорость на реальном профиле трафика.

Где производительность особенно важна

В исследовании функциональных потребностей, которое мы проводили в 2025 году, участвовали 254 респондента из разных отраслей. Более 70% выборки составили сотрудники подразделений ИТ и ИБ, руководители и специалисты технического развития.

Согласно результатам исследования самый нагруженный сценарий — обслуживание ЦОД в сегменте B2E. Для периметра и сегментации ЦОД одновременно востребованы IDS/IPS, SSL/TLS-инспекция, VPN, контроль приложений, потоковый антивирус, NAT и другие функции. Многие из них требуют значительных вычислительных ресурсов. Рабочий диапазон, как видно в таблице ниже, составлял от 50 до 200 Гбит/с.

Рисунок 1. Результаты исследования. Функции безопасности, востребованные на периметре и в сегментах корпоративной сети и ЦОД
Рисунок 1. Результаты исследования. Функции безопасности, востребованные на периметре и в сегментах корпоративной сети и ЦОД

Второй вывод касается формата поставки. Программно-аппаратные комплексы оказались предпочтительным форматом поставки во всех сегментах бизнеса: доля таких ответов составила от 53% до 73%. Респонденты связывали эту потребность с производительностью, надежностью и необходимостью заменить решения иностранных вендоров.

В совокупности эти результаты свидетельствуют о понятном инженерном запросе. На наиболее нагруженных участках требуется много функций защиты, часть функций ресурсоемка, а основной формат поставки предполагает работу с аппаратной платформой. Поэтому ускорение ПАК становится отдельной задачей продуктовой архитектуры.

Четыре группы методов ускорения

Повышать производительность можно разными методами. Мы выделяем четыре основные группы:

  • Аппаратные методы. ASIC, FPGA, SmartNIC и аппаратный SSL offloading берут на себя регулярные потоковые операции, которые эффективно реализуются в специализированной логике. Эта группа методов наиболее эффективна для задач повышения производительности и снижения задержки при обработке трафика.

  • Программно-архитектурные методы. DPDK и eBPF сокращают накладные расходы программного стека и помогают быстрее передавать пакеты между сетевым интерфейсом и приложением.

  • Системно-архитектурные методы. Кластеризация и распределенные системы обеспечивают горизонтальное масштабирование производительности и одновременно повышают отказоустойчивость.

  • Оптимизация политик. Удаление лишних правил, изменение их порядка, группировка и настройка QoS снижают объем работы для каждого потока. Иногда это самый быстрый способ вернуть системе запас производительности.

Рисунок 2. Четыре группы методов повышения производительности с оценкой прироста, задержки и гибкости
Рисунок 2. Четыре группы методов повышения производительности с оценкой прироста, задержки и гибкости

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

Почему мы выбрали FPGA

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

ASIC проектируется под заранее заданный набор задач. Технология обеспечивает максимальную производительность, низкое энергопотребление и низкую себестоимость одного устройства при очень больших тиражах, начиная примерно со 100 тысяч единиц. При этом разработка требует крупных вложений, а логику готовой микросхемы нельзя перепрограммировать под новый протокол или алгоритм.

FPGA содержит программируемые логические элементы. Сегодня на такой платформе можно ускорять IDS/IPS, после обновления конфигурации добавить обработку шифрования или изменить конвейер разбора пакета. Производительность остается высокой, обновление возможно в поле, время вывода решения обычно короче. Себестоимость одного устройства выше, а разработка при этом требует особых, редких инженерных компетенций.

Рисунок 3. Сравнение FPGA и ASIC по производительности, обновляемости, энергопотреблению, стоимости и сроку вывода на рынок
Рисунок 3. Сравнение FPGA и ASIC по производительности, обновляемости, энергопотреблению, стоимости и сроку вывода на рынок

Для обеспечения безопасности возможность обновлять аппаратную логику особенно важна. Протоколы развиваются, появляются новые типы атак и новые требования к анализу пакетов. FPGA позволяет адаптировать ускоритель без замены всей платформы.

Это решение стоит денег. Разработка занимает время, а специалисты по FPGA, сетевому программированию, криптографии и продуктовой логике должны работать как одна команда. Мы не занимаемся разработкой ASIC, поэтому детальное сравнение стоимости двух направлений было бы спекуляцией с нашей стороны. По FPGA опыт у нас есть, и он показывает, что квалификация команды остается одним из главных ограничений.

Что происходит с пакетом внутри FPGA

В процессорной реализации пакет последовательно проходит цепочку стадий: парсинг, применение правила файрвола, расшифрование, сигнатурный анализ. Многоядерный CPU обрабатывает несколько потоков, при этом для каждого потока нужно распределять работу между ядрами и обращаться к памяти и общим структурам данных.

FPGA позволяет построить конвейер. Пока первый пакет находится на стадии IDPS, следующий может проходить расшифрование, еще один — проверку правила, а новый пакет поступает в парсер. Внутри отдельного пакета также можно распараллеливать операции и реализовывать специализированные аппаратные алгоритмы.

Рисунок 4. Последовательная цепочка обработки в CPU и конвейерная параллельная обработка в FPGA
Рисунок 4. Последовательная цепочка обработки в CPU и конвейерная параллельная обработка в FPGA

Каждый такт конвейера приносит результат. Поток данных проходит через заранее собранную схему, а количество параллельных блоков определяется тем, сколько логических элементов выделено под задачу. Такой принцип хорошо подходит для регулярных потоковых операций: парсинга, сопоставления с большим набором паттернов, генерации ключей и части функций шифрования.

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

Как строится аппаратный fast path

Типовая платформа содержит сетевые порты, FPGA и центральный процессор. FPGA принимает поток с портов и обменивается с CPU данными и протоколом конфигурации. Дальше объем offload зависит от зрелости аппаратной реализации.

На первом этапе первый пакет новой сессии отправляется в CPU. Процессор применяет политики и решает, как обрабатывать поток. Затем в FPGA загружается flow rule, и последующие пакеты установленной сессии идут через аппаратный fast path.

Следующий уровень переносит в FPGA функции firewall, forwarding и NAT. По мере развития конвейера туда же можно добавить TLS и IDPS. В наиболее полном варианте из нашей схемы CPU отвечает за маршрутизацию, управление и функции, которые требуют сложной программной логики, а основной поток обрабатывается на аппаратном уровне.

Рисунок 5. Архитектура с переносом firewall, TLS, IDPS, forwarding и NAT в FPGA при сохранении routing в CPU
Рисунок 5. Архитектура с переносом firewall, TLS, IDPS, forwarding и NAT в FPGA при сохранении routing в CPU

Эволюционный подход важен для разработки продукта. Команда переносит функции по одной, измеряет результат, проверяет совместимость — и только после этого расширяет аппаратный контур. Производительность растет вместе с долей операций, которые удается корректно выполнить в FPGA.

Пять эффектов аппаратного турбонаддува

1. Ускорение обработки сетевого трафика

Fast path снимает с CPU повторяющуюся обработку пакетов уже установленной сессии. Процессор принимает решение один раз, затем правило работает в FPGA. Освободившиеся ядра можно использовать для новых соединений, управляющей логики и функций, которые еще остаются в софте.

Итоговая цифра всегда зависит от размера пакета, профиля трафика, набора включенных функций и методики теста. Поэтому показатели простого L4 firewall, EMIX, IDPS и комплексного профиля следует измерять отдельно.

2. Комплексный анализ на высокой скорости

Глубокий анализ трафика требует расшифровки, разбора, проверки по сигнатурам, сопоставления с приложением и пользователем, затем применения правил фильтрации. В FPGA мы переносим тяжелые потоковые вычисления. CPU выполняет сложные алгоритмы и принимает итоговое решение.

На FPGA эффективно реализуются генерация ключей шифрования и поиск большого числа паттернов. Конвейер дает возможность выполнять парсинг, firewall, decrypt и IDPS параллельно для разных пакетов.

Рисунок 6. Конвейер комплексного анализа с парсингом, firewall, расшифрованием и IDPS
Рисунок 6. Конвейер комплексного анализа с парсингом, firewall, расшифрованием и IDPS

3. Снижение задержки

FPGA может начинать обработку после приема первых байтов заголовка. Полное размещение пакета в DRAM требуется только для отдельных сценариев. При процессорной обработке пакет обычно буферизуется, а задержка растет вместе с загрузкой системы.

Рисунок 7. Сравнение обработки «на лету» в FPGA и буферизованной обработки CPU по задержке и зависимости от нагрузки
Рисунок 7. Сравнение обработки «на лету» в FPGA и буферизованной обработки CPU по задержке и зависимости от нагрузки

На рисунке выше для FPGA указана типовая задержка от 0,1 до 1 мкс, для CPU — от 50 до 5000 мкс. Это ориентиры для описанной архитектуры, а не универсальный сценарий для любого устройства. На результат влияют конкретный конвейер, размер пакета, активные профили защиты и способ измерения.

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

4. Обработка elephant flows

Elephant flow представляет собой одну объемную сессию со скоростью в единицы или десятки гигабит в секунду. Такой поток может занять одно процессорное ядро, вытеснить из кэша данные других потоков и заставить остальные пакеты ждать. Перераспределить одну сессию между ядрами намного сложнее, чем распределить множество независимых соединений.

FPGA переводит тяжелые сессии на аппаратный fast path, сохраняя микросекундную задержку и стопроцентную функциональность NGFW. Аппаратный fast path принимает тяжелую сессию целиком. Это помогает пропускать резервное копирование, репликацию Oracle или Microsoft SQL, видеоконференции и VDI через NGFW, сохраняя ресурс CPU для остального трафика.

Рисунок 8. Обработка elephant flows. Тяжелая сессия более 10 Гбит/с перегружает одно ядро CPU, а FPGA переносит ее на аппаратный fast path
Рисунок 8. Обработка elephant flows. Тяжелая сессия более 10 Гбит/с перегружает одно ядро CPU, а FPGA переносит ее на аппаратный fast path

5. Энергоэффективность

В наших материалах приведен расчетный пример обработки 100 Гбит/с. Сервер с двумя CPU потребляет около 450 Вт, FPGA — около 45 Вт. Для CPU только 30% энергии приходится на вычислительные ядра, остальное расходуют кэш и память, управление, копирование данных, шины и утечки. В FPGA большая часть энергии идет на логику, трансиверы и память.

Рисунок 9. Расчетный пример энергопотребления CPU и FPGA при обработке 100 Гбит/с
Рисунок 9. Расчетный пример энергопотребления CPU и FPGA при обработке 100 Гбит/с

Этот пример показывает масштаб различий в конкретной модели. FPGA дает ту же производительность обработки трафика при 5–10% потребления CPU (что критически важно для масштабируемых «зеленых» ЦОД и крупных предприятий).

Для расчета TCO своей платформы нужны измерения на одинаковом трафике и одинаковом наборе функций, а также учет энергопотребления всей системы, охлаждения и требуемого количества устройств.

Что получилось на наших платформах

Здесь особенно важно разделять экспериментальные результаты, платформы в разработке и будущие направления. Ниже я описываю статусы и цифры, представленные в материалах на момент подготовки статьи.

«Катунь-2»: модульное ускорение IDPS

«Катунь-2» представляет собой PCIe-карту с FPGA. Ее можно устанавливать в слоты расширения, предназначенные для NIC; также предусмотрен вариант под разъем M.2. Карта подходит для платформ серий D, E и F, несколько модулей могут работать вместе.

В таблице испытаний один модуль добавляет 10 Гбит/с к показателю IDPS. Для платформы D приведен рост с 5 до 15 Гбит/с. Для E показаны 18 Гбит/с без карты, 28 Гбит/с — с одной картой, 38 Гбит/с — с двумя, 48 Гбит/с — с тремя. Для F результат растет с 30 Гбит/с без ускорителя до 90 Гбит/с с шестью модулями.

Рисунок 10. Характеристики «Катуни-2» и рост скорости IDPS при добавлении модулей в платформы D, E и F
Рисунок 10. Характеристики «Катуни-2» и рост скорости IDPS при добавлении модулей в платформы D, E и F

Текущая область применения связана с ускорением IDPS. В дальнейших планах есть SSL/TLS decrypt, S2S и remote access VPN, ГОСТ TLS и ГОСТ VPN.

FG и D250: одинаковый процессор, разный способ обработки

Рассматривать экспериментальную платформу FG имеет смысл в сравнении с D250: в них используется одинаковый процессор, а FG дополнительно содержит FPGA на 500 000 LUT.

Для D250 указаны 20 Гбит/с firewall и 0,5 Гбит/с IDPS. Для FG приведены 85 Гбит/с Firewall на профиле EMIX, 150 Гбит/с — L4 Firewall на UDP с пакетами 1518 байт, 25 Гбит/с — IPS. Показатель CPS составляет больше 90 000 соединений в секунду.

Рисунок 11. Характеристики экспериментальной платформы FG, сравнение firewall и IDPS с D250
Рисунок 11. Характеристики экспериментальной платформы FG, сравнение firewall и IDPS с D250

Разные значения firewall здесь связаны с разной методикой нагрузки. EMIX моделирует набор пакетов нескольких размеров, UDP 1518 показывает обработку крупных пакетов. Публиковать только цифру без названия профиля было бы некорректно.

Дальнейшая эволюция

Гибридная G9800 объединяет FG и F8010, то есть ARM-часть с FPGA и x86-платформу. Такое решение позволяет постепенно переносить новые функции на аппаратный уровень и одновременно развивать программную часть.

u5020 в материалах обозначена как платформа в стадии прототипа. Для нее рассматривается конфигурация с двумя ARM-процессорами по 256 ядер и FPGA примерно втрое крупнее чипа FG. Эти характеристики и целевые показатели относятся к прототипу.

В дорожной карте аппаратного ускорения для uDCFW, uNGFW, uSWG и uWAF перечислены IDPS, TLS, VPN, ГОСТ VPN, ГОСТ TLS и работа правил WAF. Статус каждой функции следует сверять с актуальным релизом продукта.

Что остается за пределами FPGA

Аппаратное ускорение требует ясной границы ответственности. Регулярные потоковые операции хорошо сопрягаются с FPGA. Сложная управляющая логика, маршрутизация, мониторинг и часть алгоритмов остаются в CPU. Параллельно отдельная команда может оптимизировать процессорную обработку и развивать DPDK.

Команда разработки должна объединять специалистов по FPGA, сетям, системному программированию, криптографии, тестированию и продуктовой логике. Такие компетенции редки и стоят дорого. Главная сложность часто связана с согласованием интерфейсов и общей методики тестирования.

Сертификация также входит в архитектурный план. На момент публикации статьи платформа FG прошла сертификацию ФСТЭК. Для ГОСТ обсуждался последовательный путь: сначала сертификация программной реализации, затем перенос функций на аппаратный уровень. Направления с ML также изучаются, однако подтвержденных результатов аппаратной реализации пока нет.

Чек-лист перед выбором ускорителя

Перед тем как добавлять в файрвол аппаратный турбонаддув, я советую ответить на восемь вопросов:

  • Где находится узкое место? CPU, память, копирование пакетов, очередь, одна тяжелая сессия, неоптимальные политики или межузловой обмен требуют разных решений.

  • Как выглядит реальный трафик? Нужны размеры пакетов, число сессий, CPS, доля шифрования, объем elephant flows и набор активных функций защиты.

  • Какая метрика важнее? Пропускная способность, задержка p99, производительность IDPS, число соединений или энергопотребление задают разные приоритеты.

  • Что можно улучшить посредством настройки? Пересмотр политик и программная оптимизация иногда дают нужный запас быстрее аппаратного проекта.

  • Какие операции подходят для offload? Регулярные потоковые вычисления и поиск паттернов — хорошие варианты. Сложная логика с частыми изменениями требует отдельной оценки.

  • Как будет обновляться аппаратная логика? Нужны безопасная доставка конфигурации, откат, совместимость версий и тестирование новых протоколов и сигнатур.

  • Сколько стоит весь жизненный цикл? В расчет входят ускоритель, команда, стенды, сертификация, энергия, охлаждение, сопровождение и время вывода функции.

  • Как сравнивать результаты? Все платформы нужно тестировать на одном профиле трафика, одинаковом наборе защит и по заранее согласованной методике.

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