A Cloudflare közzétette az xdpcap-t, egy XDP-alapú forgalomelemzőt

A Cloudflare vállalat bemutatta nyílt projekt xdpcap, amely keretében egy tcpdump-ra hasonlító hálózati csomag-elemző fejlesztésre kerül, az XDP-alapú rendszer segítségével XDP (eXpress Data Path). A projekt kódja Go nyelven készült és terjesztésre kerül BSD licenc alatt elérhető. A projekthez tartozik elkészült egy könyvtár az eBPF forgalomkezelők kötésére Go nyelven írt alkalmazásokból.

Az xdpcap eszköz kompatibilis a tcpdump/libpcap szűrési kifejezéseivel és lehetővé teszi, hogy ugyanezen a hardveren jelentősen nagyobb forgalmat dolgozzon fel. Az xdpcap a hálózati verem feldolgozása előtt is alkalmazható hibakeresésre, amikor a hagyományos tcpdump nem használható, például DoS-támadások elleni szűrőrendszerek és terheléselosztók esetén, amelyek a Linux kernel XDP alrendszerét használják, amely a csomagokat még a Linux kernel hálózati verem feldolgozása előtt kezeli (a tcpdump nem látja az XDP feldolgozó által eldobott csomagokat).

A magas teljesítmény az eBPF és az XDP alrendszerek alkalmazásának köszönhető. Az eBPF a Linux kernelbe integrált bytekód értelmező, amely lehetővé teszi a bejövő/kimenő csomagok nagy teljesítményű kezelőinek létrehozását, amelyek döntéseket hoznak azok átirányításáról vagy eldobásáról. A JIT-kompilátor segítségével az eBPF bytekódot valós időben gépi utasításokká alakítják, amelyeket natív kód teljesítményével hajtanak végre. Az XDP (eXpress Data Path) alrendszer kiegészíti az eBPF-t azzal a képességgel, hogy BPF-programokat indítson a hálózati illesztőprogram szintjén, közvetlen hozzáférést biztosítva a csomagok DMA-pufferéhez, és működik a skbuff puffer kiosztásának előtti fázisban.

A tcpdump-hoz hasonlóan az xdpcap eszköz kezdetben a forgalom szűrésének magas szintű szabályait klasszikus BPF (cBPF) formába alakítja a libpcap beépített könyvtár segítségével, ezt követően eBPF alprogramokká alakítja a fordító segítségével cbpfc, amely az LLVM/Clang teljesítményének felhasználásával működik. A kimeneti forgalmi adatok standard pcap formátumban kerülnek mentésre, ami lehetővé teszi, hogy az xdpcap által előkészített forgalmi dumpot későbbi tanulmányozásra tcpdumpban és más már létező forgalomelemzőkben használják. Például a DNS forgalmi információk rögzítéséhez a 'tcpdump ip and udp port 53' parancs helyett a 'xdpcap /path/to/hook capture.pcap 'ip and udp port 53'' parancsot indíthatjuk, mely után a capture.pcap fájl felhasználható például a 'tcpdump -r' parancsban vagy Wireshark-ban.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster