Cloudflare wis nerbitake xdpcap, penganalisa lalu lintas adhedhasar subsistem XDP

Perusahaan Cloudflare diwenehi mbukak proyek xdpcap, ing ngendi analisa paket jaringan sing padha karo tcpdump lagi dikembangake, dibangun kanthi basis subsistem XDP (Path Data eXpress). Kode project ditulis ing Go lan disebarake dening ing lisensi BSD. Proyek uga disiapake perpustakaan kanggo naleni pawang lalu lintas eBPF saka aplikasi Go.

Utilitas xdpcap kompatibel karo ekspresi panyaring tcpdump/libpcap lan ngidini sampeyan ngolah volume lalu lintas sing luwih gedhe ing piranti keras sing padha. Xdpcap uga bisa digunakake kanggo debugging ing lingkungan sing tcpdump biasa ora bisa ditrapake, kayata nyaring, proteksi DoS, lan sistem keseimbangan beban sing nggunakake subsistem XDP kernel Linux, sing ngolah paket sadurunge diproses dening tumpukan jaringan kernel Linux (tcpdump). ora weruh paket dropped dening pawang XDP).

Kinerja dhuwur digayuh kanthi nggunakake subsistem eBPF lan XDP. eBPF minangka interpreter bytecode sing dibangun ing kernel Linux sing ngidini sampeyan nggawe panangan kinerja dhuwur saka paket mlebu / metu kanthi keputusan babagan nerusake utawa mbuwang. Nggunakake compiler JIT, bytecode eBPF diterjemahake kanthi cepet menyang instruksi mesin lan dieksekusi kanthi kinerja kode asli. Subsistem XDP (eXpress Data Path) nglengkapi eBPF kanthi kemampuan kanggo mbukak program BPF ing tingkat driver jaringan, kanthi dhukungan kanggo akses langsung menyang buffer paket DMA lan bisa digunakake ing tataran sadurunge buffer skbuff diparengake dening tumpukan jaringan.

Kaya tcpdump, utilitas xdpcap pisanan nerjemahake aturan nyaring lalu lintas tingkat dhuwur menyang perwakilan BPF klasik (cBPF) nggunakake perpustakaan libpcap standar, banjur ngowahi dadi rutinitas eBPF nggunakake kompiler. cbpfc, nggunakake pembangunan LLVM/Clang. Ing output, informasi lalu lintas disimpen ing format pcap standar, sing ngidini sampeyan nggunakake dump lalu lintas sing disiapake ing xdpcap kanggo sinau sabanjure ing tcpdump lan analisa lalu lintas liyane. Contone, kanggo njupuk informasi lalu lintas DNS, tinimbang nggunakake printah "tcpdump ip lan udp port 53", sampeyan bisa mbukak "xdpcap /path/to/hook capture.pcap 'ip lan udp port 53β€²" banjur nggunakake capture .pcap file, contone, karo printah "tcpdump -r" utawa ing Wireshark.

Source: opennet.ru

Add a comment