Cloudflare telah menerbitkan xdpcap, penganalisis lalu lintas berdasarkan subsistem XDP

Perusahaan Cloudflare disajikan proyek terbuka xdpcap, di mana penganalisis paket jaringan yang mirip dengan tcpdump sedang dikembangkan, dibangun berdasarkan subsistem XDP (Jalur Data Express). Kode proyek ditulis dalam Go dan didistribusikan oleh di bawah lisensi BSD. Proyek ini juga siap perpustakaan untuk mengikat penangan lalu lintas eBPF dari aplikasi Go.

Utilitas xdpcap kompatibel dengan ekspresi pemfilteran tcpdump/libpcap dan memungkinkan Anda memproses volume lalu lintas yang jauh lebih besar pada perangkat keras yang sama. Xdpcap juga dapat digunakan untuk debugging di lingkungan di mana tcpdump biasa tidak berlaku, seperti pemfilteran, perlindungan DoS, dan sistem penyeimbangan beban yang menggunakan subsistem kernel Linux XDP, yang memproses paket sebelum diproses oleh tumpukan jaringan kernel Linux (tcpdump tidak melihat paket dijatuhkan oleh pengendali XDP).

Kinerja tinggi dicapai melalui penggunaan subsistem eBPF dan XDP. eBPF adalah penerjemah bytecode yang dibangun ke dalam kernel Linux yang memungkinkan Anda membuat penangan paket masuk/keluar berkinerja tinggi dengan keputusan untuk meneruskan atau membuangnya. Menggunakan kompiler JIT, bytecode eBPF diterjemahkan dengan cepat ke dalam instruksi mesin dan dieksekusi dengan kinerja kode asli. Subsistem XDP (eXpress Data Path) melengkapi eBPF dengan kemampuan menjalankan program BPF pada tingkat driver jaringan, dengan dukungan untuk akses langsung ke buffer paket DMA dan bekerja pada tahap sebelum buffer skbuff dialokasikan oleh tumpukan jaringan.

Seperti tcpdump, utilitas xdpcap pertama-tama menerjemahkan aturan pemfilteran lalu lintas tingkat tinggi ke dalam representasi BPF klasik (cBPF) menggunakan pustaka libpcap standar, dan kemudian mengubahnya menjadi bentuk rutinitas eBPF menggunakan kompiler cbpfc, menggunakan pengembangan LLVM/Clang. Pada keluarannya, informasi lalu lintas disimpan dalam format pcap standar, yang memungkinkan Anda menggunakan dump lalu lintas yang disiapkan di xdpcap untuk studi selanjutnya di tcpdump dan penganalisis lalu lintas lain yang ada. Misalnya, untuk menangkap informasi lalu lintas DNS, alih-alih menggunakan perintah "tcpdump ip dan udp port 53", Anda dapat menjalankan "xdpcap /path/to/hook capture.pcap 'ip dan udp port 53β€²" lalu gunakan capture File .pcap, misalnya dengan perintah "tcpdump -r" atau di Wireshark.

Sumber: opennet.ru

Tambah komentar