хакатон «Need For FW Speed»

ОПИСАНИЕ кОНКУРСНОГО ЗАДАНИЯ

Наш хакатон под названием "Need For Firewall Speed" посвящён теме создания высокопроизводительных межсетевых экранов.
Участникам мероприятия предстоит конкурировать исключительно программными решениями. Аппаратная платформа и датасеты для наладки и оценки результатов будут одинаковы у всех команд.

Аппаратная платформа для соревнований взята весьма скромная по ресурсам, но при этом очень интересная. В первую очередь она максимально близка к миру OpenSource. Использованный в ней RISC-V процессор имеет статус Open Source проекта, и компания-разработчик, широко известная Raspberry Pi Foundation, придерживается концепции Open Hardware. Системное ПО также принадлежат открытым сообществам. 

Цель соревнования — оснастить предложенную аппаратную платформу пакетным фильтром, который может фильтровать пакеты по заголовкам L3 OSI (IP-адреса и порты источника и приёмника) и обеспечивать максимальную производительность на представленных слепках трафика. Ограничений на используемое ПО нет: это может быть стандартный *nix, *nix с оптимизациями, ПО для ОС РВ или Neutrino, или даже Bare Metal — программа без ОС, выполняемая на процессоре RPi CM4 Milk-V. Желательно, чтобы ПО исполнялось с встроенной микроSD-карты для упрощения отладки и дистанционной проверки.

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

Методика тестирования. При помощи утилиты TCPReplay с заданной скоростью воспроизводится слепок трафика, при этом фиксируется число прошедших фильтр пакетов и их потери. Скорость воспроизведения увеличивается до тех пор, пока потери пакетов не превысят 0.1%. Последнее значение скорости воспроизведения, при котором потери пакетов ещё не превышают 0.1%, принимается за максимальную скорость тестируемого решения. Скорость воспроизведения устанавливается с точностью до 2-й значащей цифры.

Корпус с несущей платой
Raspberry Pi CM4 IO Board
с чехлом
Несущая плата
Установлена в корпусе
Процессорный модуль
Процессорный модуль на несущей плате
Устройство в сборе