Cloudflare cég
Az xdpcap segédprogram kompatibilis a tcpdump/libpcap szűrőkifejezésekkel, és lehetővé teszi lényegesen nagyobb forgalom feldolgozását ugyanazon a hardveren. Az Xdpcap olyan környezetben is használható hibakeresésre, ahol a szokásos tcpdump nem alkalmazható, mint például a szűrés, a DoS védelem és a terheléselosztó rendszerek, amelyek a Linux kernel XDP alrendszerét használják, amelyek feldolgozzák a csomagokat, mielőtt azokat a Linux kernel hálózati verem (tcpdump) feldolgozná. nem látja az XDP-kezelő által eldobott csomagokat).
A nagy teljesítmény az eBPF és XDP alrendszerek használatával érhető el. Az eBPF a Linux kernelbe épített bájtkód értelmező, amely lehetővé teszi a bejövő/kimenő csomagok nagy teljesítményű kezelőinek létrehozását a továbbítási vagy elvetési döntésekkel. Egy JIT fordító segítségével az eBPF bájtkódot menet közben gépi utasításokká fordítják, és a natív kód teljesítményével hajtják végre. Az XDP (eXpress Data Path) alrendszer kiegészíti az eBPF-et a BPF-programok hálózati illesztőprogram-szintű futtatásának képességével, támogatja a DMA csomagpufferhez való közvetlen hozzáférést, és az skbuff puffert a hálózati verem általi lefoglalása előtti szakaszban.
A tcpdump-hoz hasonlóan az xdpcap segédprogram először a magas szintű forgalomszűrési szabályokat a klasszikus BPF-reprezentációra (cBPF) fordítja le a szabványos libpcap könyvtár segítségével, majd egy fordító segítségével eBPF-rutinokká alakítja.
Forrás: opennet.ru