Разработка программного обеспечения Разработка сетевого программного обеспечения Разработка программного обеспечения под Линукс Разработка программного обеспечения под Linux Разработка на C Разработка драйверов Линукс Разработка драйверов Linux Разработка драйверов ядра Написание драйверов Написать программу под Линукс Заказная разработка Заказная разработка ПО Заказная разработка под Линукс Заказная разработка драйверов Заказная разработка модулей ядра Операционная система Операционная система на базе Линукс Операционная система на базе Linux Российская операционная система Операционная система для сетевого оборудования Операционная система для телекоммуникационного оборудования Рссийская операционная система для сетевого оборудования Российская операционная система для телекоммуникационного оборудования Встроенное программное обеспечение Прошивки Маршрутизатор Сеть Коммутатор Точка доступа Сотовый Реестр отечественного ПО Реестр Минцифры Российский софт Нетше Нетше лаб Linux Firmware Kernel NETSHe OS Router Switch AP CPE Cellular 2G 3G 4G 5G STAsoft.net NETSHe NETSHe Lab

Fast Routing

Fast Routing основан на имеющейся в ядре Линукс подсистеме XDP и не использует eBPF. Больше информации о XDP можно получить тут.

На стадии, когда образ кадра/пакета перенесен из сетевого адаптера в кольцевой буфер драйвера (т.е. до выделения структуры sk_buff и копирования туда образа кадра), проводится анализ заголовков и ищется подходящий выходной адаптер. При отсутствии маршрута или его неприменимости, обработка образа продолжается в стандартном стеке (XDP_PASS), в ином случае образ отбрасывается (XDP_DROP), или (после модификации заголовков) пересылается прямо в буфер выходного адаптера для его немедленной отправки (XDP_REDIRECT).

Такой подход часто позволяет получить выигрыш в производительности. Но, наряду с таким достоинством, у его использования есть и существенные ограничения:

  • Перенапрвляемый кадр минует стандартный сетевой стек. Соответственно, к нему не могут быть применены некоторые процедуры - приоритизация, ограничение пропускной способности, учет состояния соединения, расширенная фильтрация, балансировка исходящей нагрузки и т.п.
  • Фильтрация входящего трафика возможна только без учета состояния - на основе правил маршрутизации (black hole) или компоненты Fast iACL.
  • Пересылаемый кадр/пакет немедленно отправляется с исходяшего адаптера, что может привести к нарушению порядка доставки пакетов.
  • Туннелирование исходящего трафика недоступно.

Fast Routing является некоторым функциональным аналогом Cisco Express Forwarding (CEF).

Внутри Fast Routing реализованы:

  • unicast-маршрутизация IPv4 и IPv6
  • граничный MPLS-маршрутизатор
  • снятие VLAN-тегов

Ведутся работы над реализацией:

  • multicast-мвршрутизации
  • терминации GRE-и IPIP-туннелей

Прирост производительности в тестах зависит от типа трафика и сценария использования и составляет от 50 до 100% в PPS.