100Gbps hat hızında saniyede 148 milyon pakete (Mpps) ulaşan hacimsel DDoS saldırılarında eBPF XDP, nftables ve iptables motorlarının CPU çekirdek tüketimini ve sunucu çökme riskini simüle edin.
| Motor / Yontem | Paket Isleme Noktasi | 1 Cekirdek Kapasitesi | Gereken Cekirdek | 100 Gbps Dayanimi |
|---|---|---|---|---|
| Geleneksel iptables | Kernel sk_buff sonrasi | 0.4 Mpps | 74.4 | Kilitlenir (Coker) |
| Modern nftables | Netfilter kancasinda | 0.7 Mpps | 42.5 | Yuksek CPU Tuketimi |
| eBPF XDP Native (Tavsiye) | NIC Surucusu (Ring Buffer) | 26.0 Mpps | 1.1 | Hat Hizinda Engel (1-2 Cekirdek) |
| SmartNIC XDP Offload | NIC ASIC Donanim Silikonu | Hat Hizi (Donanim) | 0.0 (0% CPU) | Sifir CPU ile 100 Gbps |
ip link uzerinden XDP programi baglama ve SEC("xdp_drop") kernel C fonksiyonu.
# Linux 6.8+ uzerinde eBPF XDP Programini Arayuze Baglama:
# Native Driver Modu (Yuksek basarim, sk_buff oncesi ring buffer kancasi):
sudo ip link set dev eth0 xdpmode native obj xdp_ddos.o sec xdp_drop
# XDP Durumunu ve Saniyedeki Drop Istatistiklerini Izleme:
sudo ip -details link show dev eth0
sudo bpftool prog show --tag xdp_ddos
# Saldiri Bitisinde XDP Kancasini Kaldirma:
sudo ip link set dev eth0 xdp offGeleneksel Linux güvenlik duvarı (iptables / netfilter), ağ kartına (NIC) ulaşan her paket için önce çekirdek bellek tamponu olan sk_buff yapısını tahsis eder ve CPU kesmesi (interrupt) tetikler.
64 baytlık küçük SYN veya UDP paketleriyle yapılan bir saldırıda (örneğin 20 Gbps = saniyede 29 milyon paket), işletim sistemi saniyede milyonlarca kez bellek tahsis etmeye çalışırken ksoftirqd süreçleri tüm CPU çekirdeklerini %100 seviyesinde kilitler (Kernel Starvation). Sonuç olarak sunucu meşru web isteklerini de işleyemez hale gelerek tamamen çöker. Tek bir çekirdek iptables ile saniyede en fazla 400.000 paket düşürebilir.
eBPF XDP, paket çekirdek ağına (network stack) girmeden ve sk_buff tahsisi yapılmadan önce doğrudan ağ kartının sürücü katmanında (NIC driver ring buffer) çalışır.
Saldırgan bir IP veya imza tespit edildiğinde XDP_DROP dönülerek paket anında yok edilir. Bu sayede tek bir modern CPU çekirdeği saniyede 25 ila 40 milyon paket düşürebilir. Aynı 20 Gbps saldırıyı iptables 50+ çekirdekle bile kaldıramazken, eBPF XDP tek bir çekirdekleve sunucunun geri kalan kaynaklarını hiç etkilemeden bertaraf eder. Mellanox/Pensando SmartNIC donanım offload modunda ise bu işlem sıfır CPU maliyetiyle doğrudan kartın ASIC silikonunda gerçekleşir.