Перейти к содержимому

eBPF

extended Berkeley Packet Filter - виртуальная машина ядра Linux

Производительность

Без перезагрузки ядра

Безопасность

Защита ядра

Мониторинг

Real-time анализ

Что такое eBPF?

eBPF (extended Berkeley Packet Filter) — это виртуальная машина в ядре Linux, которая позволяет выполнять программы в пространстве ядра без изменения исходного кода ядра или загрузки модулей. eBPF обеспечивает безопасное и эффективное расширение функциональности ядра для мониторинга, безопасности и производительности. BPF появился в Linux 3.18 (2014), а eBPF (extended BPF) развивался с версии 4.1+ (2015) с полной функциональностью к версии 5.0+ (2019).

Технология eBPF используется для создания высокопроизводительных сетевых фильтров, систем мониторинга, средств безопасности и инструментов отладки. Программы eBPF проверяются на безопасность перед выполнением и могут быть загружены в ядро без перезагрузки системы, что делает их идеальными для production-сред. XDP (eXpress Data Path) — расширение eBPF, вводящее in-kernel packet processing с минимальной задержкой.

Документация:

eBPF является частью ядра Linux. Основная документация доступна в Linux kernel documentation и на сайте eBPF.io. XDP (eXpress Data Path) — расширение eBPF для высокопроизводительной обработки пакетов.

Технические характеристики

Платформа

Linux Kernel

Версия ядра

Linux 3.18+ (BPF), 4.1+ (eBPF базовая), 5.0+ (полная функциональность)

Расширения

XDP, TC, Tracepoints

Применение

DDoS mitigation, Firewall, Monitoring

eBPF в Security

Приложения

  • DDoS Mitigation
  • Firewalling
  • Load Balancing
  • Network Monitoring

Преимущества

  • Минимальные издержки
  • Динамическая загрузка
  • Полная видимость
  • XDP поддержка

Эволюция eBPF в Linux ядре

Поддержка функций по версиям ядра

График показывает развитие поддержки eBPF функций в различных версиях Linux ядра

* BPF: Original Berkeley Packet Filter базовая функциональность

* eBPF: Extended BPF с полной поддержкой современных инструментов

* XDP: eXpress Data Path для in-kernel packet processing

* Tracing: Трассировка и отладка программ в реальном времени

Сравнение издержек eBPF

Служебные издержки по сравнению с альтернативами

Столбчатая диаграмма сравнивает служебные издержки eBPF с альтернативными подходами

* CPU Overhead (%) - процент использования процессора

* Memory Overhead (%) - использование памяти

* Latency (относительно) - относительная задержка

* Flexibility (0-100) - гибкость и возможности

eBPF для Next-Gen Security

Исследования