TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #456 3.52K
👀 Контроль сетевого трафика в Linux с помощью eBPF и XDP

Современные нагрузки требуют высокой производительности сетевых решений, а классические инструменты вроде iptables и nftables уже не всегда справляются. Здесь на сцену выходят eBPF (Extended Berkeley Packet Filter) и XDP (eXpress Data Path) - технологии для глубокой фильтрации и анализа трафика прямо в ядре Linux.

🌟 Что это такое?

eBPF - механизм в ядре Linux, позволяющий безопасно выполнять программы в режиме ядра без изменения исходного кода. Используется для фильтрации пакетов, мониторинга, трассировки и профилирования системы.

XDP - подсистема ядра Linux, основанная на eBPF, позволяющая обрабатывать пакеты на самом раннем этапе их поступления в систему (на уровне драйвера сетевой карты).


▪️ Как использовать eBPF и XDP для анализа трафика? Для работы с eBPF можно использовать утилиты bpftool и bcc (BPF Compiler Collection).

1️⃣ Установим необходимые пакеты:


sudo apt install -y bpfcc-tools linux-headers-$(uname -r) #на Debian/Ubuntu
sudo dnf install -y bpftool bcc #на RHEL/Fedora


2️⃣ Запустим мониторинг пакетов с eBPF:


sudo /usr/sbin/tc qdisc add dev eth0 clsact
sudo /usr/sbin/tc filter add dev eth0 egress bpf direct-action obj xdp_prog_kern.o


Это позволит анализировать выходящий трафик с интерфейса eth0.

3️⃣ Фильтрация пакетов с помощью XDP. Простейший eBPF-программы для отбрасывания пакетов (пример на C):


#include <linux/bpf.h>
int xdp_drop(struct __sk_buff *skb) {
return XDP_DROP; // Отбрасываем пакет
}


Компилируем и загружаем программу в XDP:


clang -O2 -target bpf -c xdp_drop.c -o xdp_drop.o
sudo ip link set dev eth0 xdp obj xdp_drop.o


Теперь весь трафик на интерфейсе eth0 будет блокироваться на уровне драйвера.

⭐️ Где применяют eBPF и XDP?

DDoS-защита - можно отбрасывать вредоносный трафик без нагрузки на процессор.
Балансировка нагрузки - построение L4-L7 балансировщиков без iptables.
Мониторинг сети - сбор детальной статистики по пакетам в реальном времени.


Примеры таких решений: Cilium, Suricata, Falco, Katran (Facebook), XDP Firewall.

#linux #eBPF #XDP

🧑‍💻 NetworkAdmin
  • 👍 12
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  3. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  4. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  5. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  6. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →